Supongamos que tenemos un objeto con los siguientes pares clave-valor:
var objeto = { "p1": "value1", "p2": "value2", "p3": "value3" };
Se puede recorrer con los siguientes métodos:
for-in: Se recorre el objeto de manera muy similar al foreach de PHP. Debe preguntar si la clave actualmente recogida es propiedad propia (y no heredada) del objeto que se está recorriendo; para no confundir claves del objeto con propiedades del prototipo (prototype) Object.
for (var key in objeto) { if (!objeto.hasOwnProperty(key)) continue; console.log(key + " -> " + objeto[key]); //Output: p1 -> value1 }
for-keys: extraer el array de claves del objeto y recorrer dicho array.
var keys = Object.keys(objeto); for(var i = 0; i < keys.length; i++){ var idAtributo = keys[i]; var atributo = objeto[idAtributo]; console.log(idAtributo + " -> " + atributo); //Output: p1 -> value1 }
foreach: es una función propia de los arrays; sencillamente se extraen las claves el objeto a recorrer y sobre dicho array de claves se realiza el foreach. No es muy óptimo (en cuanto a procesos/segundo) y además no puede detenerse el bucle a menos que se lance una excepción dentro del mismo. No está pensado para hacer iteraciones en un el sentido tradicional.
Object.keys(objeto).forEach( function(valor, indice, objeto) { console.log(indice + " -> " + valor); });
Créditos de fuentes externas:
Referencias:
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.