2012-07-01 2 views

답변

30

for in 루프는 당신에게 키와 값을 제공 할 수 있습니다. 당신이 이상 반복하고있는 객체가 그것의 프로토 타입에서 속성을 상속 한 경우

foo = {bar: "baz"} 

Object 
bar: "baz" 
__proto__: Object 

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

,이 같은 Object.hasOwnProperty() 기능을 사용하여 이상 반복되는 것을 상속 된 속성을 방지 할 수 있습니다 : 콘솔에서

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

:

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

당신이 할 수있는 그것을 통해 루프 :

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

Demo

0

현재 수행중인 다른 플랫폼에 따라 다를 수 있습니다. 터미널에서 실행중인 경우 print을 사용하면 console 개체가 없으면 document.write() 등을 사용할 수 있습니다. 여기

이해 읽는 당신이 사용할 수있는 무언가 /입니다 : 당신은 그냥 크롬/파이어 폭스에서 console.log(foo)을 말한다면, 또는

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

, 브라우저가 수행 루핑-강조 당신을 위해 당신에게 pretty-을 제공 개체의 인쇄, 그래서 정말 위의 루핑을 할 필요가 없습니다.

console.log(foo) 대신 console.debug(foo)을 사용할 수도 있습니다. 그 차이는 미묘합니다. 이에 대한 자세한 내용은 http://getfirebug.com/wiki/index.php/Console_API

관련 문제