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.