recorrer property objetos objeto metodos lista keys eliminar elemento array agregar javascript object iteration

property - ¿Cómo iterar(claves, valores) en javascript?



object.keys map (9)

tl; dr

  1. En ECMAScript 5, no es posible.
  2. En ECMAScript 2015, es posible con Map s.
  3. En ECMAScript 2017, estaría fácilmente disponible.

ECMAScript 5:

No, no es posible con objetos.

Deberías iterar con for..in u Object.keys , como este

for (var key in dictionary) { // check if the property/key is defined in the object itself, not in parent if (dictionary.hasOwnProperty(key)) { console.log(key, dictionary[key]); } }

Nota: La condición if anterior es necesaria, solo si desea iterar las propiedades que son propias del objeto del dictionary . Porque for..in a través de todas las propiedades enumerables heredadas.

O

Object.keys(dictionary).forEach(function(key) { console.log(key, dictionary[key]); });

ECMAScript 2015

En ECMAScript 2015, puede usar objetos Map e Map.prototype.entries con Map.prototype.entries . Ejemplo de cita de esa página,

var myMap = new Map(); myMap.set("0", "foo"); myMap.set(1, "bar"); myMap.set({}, "baz"); var mapIter = myMap.entries(); console.log(mapIter.next().value); // ["0", "foo"] console.log(mapIter.next().value); // [1, "bar"] console.log(mapIter.next().value); // [Object, "baz"]

O iterar con for..of , así

''use strict''; var myMap = new Map(); myMap.set("0", "foo"); myMap.set(1, "bar"); myMap.set({}, "baz"); for (const entry of myMap.entries()) { console.log(entry); }

Salida

[ ''0'', ''foo'' ] [ 1, ''bar'' ] [ {}, ''baz'' ]

O

for (const [key, value] of myMap.entries()) { console.log(key, value); }

Salida

0 foo 1 bar {} baz

ECMAScript 2017

ECMAScript 2017 introduciría una nueva función Object.entries . Puede usar esto para iterar el objeto como desee.

''use strict''; const object = {''a'': 1, ''b'': 2, ''c'' : 3}; for (const [key, value] of Object.entries(object)) { console.log(key, value); }

Salida

a 1 b 2 c 3

Tengo un diccionario que tiene el formato de

dictionary = {0: {object}, 1:{object}, 2:{object}}

¿Cómo puedo recorrer este diccionario haciendo algo como

for((key,value) in dictionary){ //Do stuff where key would be 0 and value would be the object }


Como una mejora a la respuesta aceptada, para reducir el anidamiento, puede hacer esto en su lugar:

for (var key in dictionary) { if (!dictionary.hasOwnProperty(key)) { continue; } console.log(key, dictionary[key]); }


Creo que la manera rápida y fácil es

Object.entries(event).forEach(k => { console.log("properties ... ", k[0], k[1]); });

solo revise la documentación Object.entries


El método Object.entries() se ha especificado en ES2017 (y es compatible con todos los navegadores modernos ):

for (const [ key, value ] of Object.entries(dictionary)) { // do something with `key` and `value` }

Explicación:

  • Object.entries() toma un objeto como { a: 1, b: 2, c: 3 } y lo convierte en una matriz de pares clave-valor: [ [ ''a'', 1 ], [ ''b'', 2 ], [ ''c'', 3 ] ] .

  • Con for ... of podemos recorrer cada entrada de la matriz así creada.

  • Dado que tenemos la garantía de que cada uno de los elementos de la matriz iterada es otra matriz de dos entradas, podemos usar la destructuring para asignar directamente la key y el value variables a su primer y segundo elemento.


Prueba esto:

var value; for (var key in dictionary) { value = dictionary[key]; // your code here... }


Prueba esto:

dict = {0:{1:''a''}, 1:{2:''b''}, 2:{3:''c''}} for (var key in dict){ console.log( key, dict[key] ); } 0 Object { 1="a"} 1 Object { 2="b"} 2 Object { 3="c"}


Puedes hacer algo como esto:

dictionary = {''ab'': {object}, ''cd'':{object}, ''ef'':{object}} var keys = Object.keys(dictionary); for(var i = 0; i < keys.length;i++){ //keys[i] for key //dictionary[keys[i]] for the value }


Puedes usar el siguiente script.

var obj={1:"a",2:"b",c:"3"}; for (var x=Object.keys(obj),i=0;i<x.length,key=x[i],value=obj[key];i++){ console.log(key,value); }

salidas
1 a
2 b
c 3


usando swagger-ui.js

Puedes hacerlo -

_.forEach({ ''a'': 1, ''b'': 2 }, function(n, key) { console.log(n, key); });