Tengo un diccionario que tiene el formato de
dictionary = {0: {object}, 1:{object}, 2:{object}}
¿Cómo puedo iterar a través de este diccionario haciendo algo como
for((key,value) in dictionary){
//Do stuff where key would be 0 and value would be the object
}
javascript
object
iteration
nbroeking
fuente
fuente
for (let [key, value] of Object.entries(obj))
Necesito a Babel.Respuestas:
tl; dr
Map
s.ECMAScript 5:
No, no es posible con objetos.
Deberías iterar con
for..in
, oObject.keys
, asíNota: La
if
condición anterior es necesaria, solo si desea iterar las propiedades que sondictionary
propias del objeto. Porquefor..in
iterará a través de todas las propiedades enumerables heredadas.O
ECMAScript 2015
En ECMAScript 2015, puede usar
Map
objetos e iterarlosMap.prototype.entries
. Ejemplo de cita de esa página,O iterar con
for..of
, asíSalida
O
Salida
ECMAScript 2017
ECMAScript 2017 introduciría una nueva función
Object.entries
. Puede usar esto para iterar el objeto como desee.Salida
fuente
Object.keys(dictionary).forEach(function(key) {…
muy legible y compatible.Object.entries(object).forEach(([key, val]) => {...});
Prueba esto:
fuente
El
Object.entries()
método se ha especificado en ES2017 (y es compatible con todos los navegadores modernos ):Explicación:
Object.entries()
toma un objeto como{ a: 1, b: 2, c: 3 }
y lo convierte en un conjunto de pares de valores clave:[ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
.Con
for ... of
podemos recorrer las entradas de la matriz así creada.Dado que tenemos la garantía de que cada uno de los elementos de la matriz iterada es en sí mismo una matriz de dos entradas, podemos usar la desestructuración para asignar directamente variables
key
yvalue
a su primer y segundo elemento.fuente
Puedes hacer algo como esto:
fuente
Prueba esto:
fuente
BIENVENIDO A 2020 * Drools en ES6 *
Aquí hay algunas respuestas bastante antiguas: aproveche la desestructuración. En mi opinión, esta es sin duda la mejor manera (muy legible) de iterar un objeto.
fuente
forEach
con elmap
anterior, entonces es posible agregar valores.map
luego devolverá una lista de dichos valores, lo que simplifica potencialmente el código de otras maneras.Creo que la manera rápida y fácil es
simplemente consulte la documentación https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
fuente
${key} ${value}
);});usando swagger-ui.js
Puedes hacerlo -
fuente
Puedes usar el siguiente script.
salidas
1 a
2 b
c 3
fuente
Como una mejora a la respuesta aceptada, para reducir el anidamiento, puede hacer esto en su lugar, siempre que la clave no se herede:
Editar: información sobre
Object.hasOwnProperty
aquífuente