2012-07-01 13 views

Odpowiedz

30

for in pętla może dać ci klucz i wartość.

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

Z konsoli:

foo = {bar: "baz"} 

Object 
bar: "baz" 
__proto__: Object 

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

Jeśli obiekt jesteś zapętlenie nad został dziedziczy właściwości od jego prototyp, można zapobiec dziedziczone właściwości przed zapętlony nad użyciem funkcji Object.hasOwnProperty() tak :

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

Można przez to pętla:

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

Demo

0

Może to być różne dla różnych platform, nad którymi obecnie pracujesz. Jeśli używasz terminala, a następnie używasz print, jeśli nie masz obiektu console, możesz użyć document.write() i tak dalej.

Oto coś, co można używać/odczytu do zrozumienia:

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]); 
} 

Alternatywnie, jeśli tylko powiedzieć console.log(foo) w Chrome/Firefox przeglądarek zrobić pętli wyróżniania dla Ciebie i daje pretty- wydruk twojego obiektu, więc naprawdę nie musisz robić pętli pokazanej powyżej.

Można również użyć console.debug(foo) zamiast console.log(foo), różnica jest subtelna. Więcej informacji na ten temat można uzyskać pod adresem: http://getfirebug.com/wiki/index.php/Console_API

Powiązane problemy