los Object.entries() el método devuelve un array del propio enumerable de un objeto dado string-propiedad con clave [key, value] pares, en el mismo orden que el proporcionado por un for...in círculo. (La única diferencia importante es que un for...in loop también enumera propiedades en la cadena de prototipos).

El orden del array devuelto por Object.entries() no depende de cómo se defina un objeto. Si es necesario realizar determinados pedidos, entonces el array debe ordenarse primero, como Object.entries(obj).sort((a, b) => b[0].localeCompare(a[0]));.

Sintaxis

Object.entries(obj)

Parámetros

obj
El objeto cuyo propio enumerable string-propiedad con clave [key, value] los pares deben ser devueltos.

Valor devuelto

Un array del propio enumerable del objeto dado string-propiedad con clave [key, value] pares.

Descripción

Object.entries() devuelve un array cuyos elementos son matrices correspondientes al enumerable string-propiedad con clave [key, value] pares encontrados directamente sobre object. El orden de las propiedades es el mismo que se da al recorrer los valores de propiedad del objeto manualmente.

Polyfill

Para agregar compatible Object.entries() en entornos más antiguos que no lo admiten de forma nativa, puede utilizar cualquiera de los siguientes:

if(!Object.entries)
  Object.entries=function(obj)var ownProps = Object.keys( obj ),
        i = ownProps.length,
        resArray =newArray(i);// preallocate the Arraywhile(i--)
      resArray[i]=[ownProps[i], obj[ownProps[i]]];return resArray;;

Para el fragmento de código polyfill anterior, si necesita soporte para IE <9, también necesitará un Object.keys() polyfill (como el que se encuentra en el Object.keys página).

Ejemplos de

const obj = foo:'bar', baz:42;
console.log(Object.entries(obj));// [ ['foo', 'bar'], ['baz', 42] ]// array like objectconst obj =0:'a',1:'b',2:'c';
console.log(Object.entries(obj));// [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]// array like object with random key orderingconst anObj =100:'a',2:'b',7:'c';
console.log(Object.entries(anObj));// [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]// getFoo is property which isn't enumerableconst myObj = Object.create(, getFoo:value()returnthis.foo;);
myObj.foo ='bar';
console.log(Object.entries(myObj));// [ ['foo', 'bar'] ]// non-object argument will be coerced to an object
console.log(Object.entries('foo'));// [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]// returns an empty array for any primitive type except for strings (see the above example), since primitives have no own properties
console.log(Object.entries(100));// [ ]// iterate through key-value gracefullyconst obj = a:5, b:7, c:9;for(const[key, value]of Object.entries(obj))
  console.log(`$key$value`);// "a 5", "b 7", "c 9"// Or, using array extras
Object.entries(obj).forEach(([key, value])=>
  console.log(`$key$value`);// "a 5", "b 7", "c 9");

Convertir un Object a un Map

los new Map() constructor acepta un iterable de entries. Con Object.entries, puede convertir fácilmente desde Object para Map:

const obj = foo:'bar', baz:42;const map =newMap(Object.entries(obj));
console.log(map);// Map(2) "foo" => "bar", "baz" => 42

Iterando a través de un Object

Con Array Destructuring, puede iterar a través de objetos fácilmente.

const obj = foo:'bar', baz:42;
Object.entries(obj).forEach(([key, value])=> console.log(`$key: $value`));// "foo: bar", "baz: 42"

Especificaciones

Especificación
ECMAScript (ECMA-262)
La definición de ‘Object.entries’ en esa especificación.

Compatibilidad del navegador

Escritorio Móvil
Cromo Borde Firefox explorador de Internet Ópera Safari WebView Android Chrome Android Firefox para Android Opera Android Safari en IOS Internet de Samsung
entries 54 14 47 No 41 10.1 54 54 47 41 10,3 6.0

Ver también

  • Enumerabilidad y titularidad de inmuebles
  • Object.keys()
  • Object.values()
  • Object.prototype.propertyIsEnumerable()
  • Object.create()
  • Object.fromEntries()
  • Object.getOwnPropertyNames()
  • Map.prototype.entries()
  • Map.prototype.keys()
  • Map.prototype.values()