如何获取对象中键值对的列表?

时间:2012-07-01 02:11:26

标签: javascript

  

可能重复:
  best way to get the key of a key/value javascript object

  

foo = {bar:“baz”}

如何获得foo中所有属性和值的列表?

3 个答案:

答案 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)

你可以遍历它:

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

Demo

答案 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

了解详情