Nuestro grupo especializado pasados algunos días de investigación y de recopilar de información, encontramos la respuesta, deseamos que te sea útil en tu proyecto.
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:
- una implementación de demostración de
Object.entries
en el tc39 / entrada-valores-objeto-propuesta (si no necesita ningún soporte para IE); - un polyfill en el es-shims / Object.entries repositorios;
- o puede usar el polyfill simple y listo para implementar que se enumera a continuación:
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()
Nos puedes añadir valor a nuestro contenido informacional contribuyendo tu veteranía en las observaciones.