如果有JavaScript对象:

var objects={...};

假设,它有超过50个属性,不知道属性名称(即不知道“键”)如何在循环中获得每个属性值?


当前回答

use

console.log(variable)

如果你使用谷歌chrome打开控制台使用Ctrl+Shift+j

转到>>控制台

其他回答

对于那些早期适应CofeeScript时代的人来说,这里有另一个等价的东西。

val for key,val of objects

这可能比这样更好,因为可以减少对象,重新键入,降低可读性。

objects[key] for key of objects

在ECMAScript5中使用

 keys = Object.keys(object);

否则,如果您的浏览器不支持它,请使用众所周知的for. in循环

for (key in object) {
    // your code here
}

如果你真的想要一个值数组,我发现这比用for…在循环。

ECMA 5.1 +

function values(o) { return Object.keys(o).map(function(k){return o[k]}) }

值得注意的是,在大多数情况下,你并不需要一个值数组,这样做会更快:

for(var k in o) something(o[k]);

这将遍历对象o的键值。在每次迭代中,k被设置为o的键值。

你可以循环遍历键:

foo = {one:1, two:2, three:3};
for (key in foo){
    console.log("foo["+ key +"]="+ foo[key]);
}

将输出:

foo[one]=1
foo[two]=2
foo[three]=3

如果你可以访问Underscore.js,你可以使用_. js。价值观的作用是这样的:

_.values({one : 1, two : 2, three : 3}); // return [1, 2, 3]