2012-07-01 37 views

回答

30

一个for in循环可以给你的键和值。

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

从控制台:

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) { 
    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()等。

这里是东西,你可以使用/阅读理解:

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

另外,如果你只说console.log(foo)在Chrome/Firefox中,浏览器做循环,高亮你,给你一个pretty-打印你的对象,所以你不需要做如上所示的循环。

您还可以使用console.debug(foo)代替console.log(foo),所不同的是微妙的。您可以在http://getfirebug.com/wiki/index.php/Console_API