2012-07-01 11 views

Respuesta

30

Un bucle for in le puede dar la clave y el valor.

for(i in foo) { 
    console.log (i, foo[i]) 
} 

Desde la consola:

foo = {bar: "baz"} 

Object 
bar: "baz" 
__proto__: Object 

for(i in foo) { console.log (i, foo[i]) } 
> bar baz 

Si el objeto que está bucle más se ha heredado propiedades de ella de prototipo, se puede evitar que las propiedades heredadas de ser enrollado sobre el uso de la función Object.hasOwnProperty() como esto :

for(i in foo) { 
    if (foo.hasOwnProperty(i)) { 
     console.log (i, foo[i]) 
    } 
} 
1

Puede recorrer a través de él:

for(var i in foo) { 
    console.log(i + ": " + foo[i] + "<br />"); 
} 

Demo

0

Esto puede ser diferente para las diferentes plataformas en las que está trabajando actualmente. Si está ejecutando desde la terminal, entonces usa print, si no tiene el objeto console, entonces puede usar document.write() y así sucesivamente.

Aquí es algo que se puede utilizar/leer para entender:

var foo = {bar: "baz", boolean: true, num: 2} 

for (i in foo) { 
//checks to see where to print. 
if (typeof console === 'object') 
    console.log(i + ": " + foo[i]); 
else if (typeof document === 'object') 
    document.write(i + ": " + foo[i]); 
else 
    print(i + ": " + foo[i]); 
} 

Alternativamente, si sólo decir console.log(foo) en Chrome/Firefox, los navegadores hacer el bucle resaltado para usted y le dará una pretty- imprima su objeto, por lo que realmente no necesita hacer el bucle que se muestra arriba.

También puede usar console.debug(foo) en lugar de console.log(foo), la diferencia es sutil. Puede leer más sobre esto en http://getfirebug.com/wiki/index.php/Console_API

Cuestiones relacionadas