2012-09-28 42 views

Respuesta

2

Es Hay una alternativa que hace exactamente lo mismo?

Un bucle for ... in en la que el primero que se hace en el bloque de código es copiar foo[propertyname] a una variable.

+1

Sí, supongo que solo hay una solución alternativa, que en realidad no es un reemplazo de idioma para "para cada uno". Entonces no deberían haberlo desaprobado, ¿verdad? – user1537366

+0

Por lo que recuerdo, esto solo funciona en webkit? – Benedictus

+0

@Benedictus - No. Está en JavaScript 1.0. ¡Netscape 2 lo admite! – Quentin

14

Para iterar sobre todas las propiedades de un objeto obj, es posible hacer esto:

for (var key in obj) { 
    console.log(key, obj[key]); 
} 

Si quieres evitar las propiedades heredadas, es posible hacer esto:

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

Puede hacer uso de las nuevas ECMAScript 5ª edición funciones:

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

^así es como resolví el error 'no-restricted-syntax' de eslint cuando se usa' forinstatement'. – pherris

Cuestiones relacionadas