Object.values()

El método Object.values() devuelve un array con los valores correspondientes a las propiedades enumerables de un objeto. Las propiedades son devueltas en el mismo orden a como lo haría un bucle for...in (la única diferencia es que un bucle for-in también enumera las propiedades en la cadena de prototipo de un objeto).

Sintaxis

Object.values(obj)

Parámetros

obj
Objeto cuyas propiedades enumerables serán devueltas.

Valor devuelto

Un array con las propiedades enumerables del objeto pasado como parámetro.

Descripción

El método Object.values() devuelve un array cuyos elementos son valores de propiedades enumarables que se encuentran en el objeto. El orden de las propiedades es el mismo que el dado cuando se recorre el objeto de forma manual.

Ejemplos

var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]

// array como objeto
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']

// array como objeto con una ordenación aleatoria de las claves
var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']

// getFoo no es una propiedade enumerable, por lo que como se observa, no se devuelve
var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
my_obj.foo = 'bar';
console.log(Object.values(my_obj)); // ['bar']

// parámetros que no son Objetos se fuerzan a que se comporten como tal
console.log(Object.values('foo')); // ['f', 'o', 'o']

Polyfill

Para dar soporte compatible con  Object.values() a entornos antiguos que no la soportan de forma nativa, puedes encontrar un Polyfill en tc39/proposal-object-values-entries o en los repositorios es-shims/Object.values.

Especificaciones

Especificación Estado Comentario
ECMAScript (ECMA-262)
La definición de 'Object.values' en esta especificación.
Living Standard Definición inicial.
ECMAScript 2017 (ECMA-262)
La definición de 'Object.values' en esta especificación.
Standard

Compatibilidad en navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
valuesChrome Soporte completo 54Edge Soporte completo 14Firefox Soporte completo 47IE Sin soporte NoOpera Soporte completo 41Safari Soporte completo 10.1WebView Android Soporte completo 54Chrome Android Soporte completo 54Firefox Android Soporte completo 47Opera Android Soporte completo 41Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo 6.0nodejs Soporte completo 7.0.0
Soporte completo 7.0.0
Soporte completo 6.5.0
Deshabilitado
Deshabilitado From version 6.5.0: this feature is behind the --harmony runtime flag.

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.

Ver también