答案 0 :(得分:40)
for in
循环可以为您提供密钥和值。
for(p in foo) {
console.log (p, foo[p])
}
从控制台:
foo = {bar: "baz"}
Object
bar: "baz"
__proto__: Object
for(p in foo) { console.log (p, foo[p]) }
> bar baz
如果您循环的对象已从其原型继承了属性,则可以使用Object.hasOwnProperty()
函数阻止继承的属性循环:
for(p in foo) {
if (foo.hasOwnProperty(p)) {
console.log (p, foo[p])
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
对于您当前正在处理的不同平台,这可能会有所不同。如果您从终端运行,则使用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]);
}
或者,如果您只是在Chrome / Firefox中说console.log(foo)
,浏览器会为您执行循环突出显示,并为您提供漂亮的对象,因此您不需要执行上面显示的循环。
您也可以使用console.debug(foo)
代替console.log(foo)
,差异很微妙。您可以在http://getfirebug.com/wiki/index.php/Console_API