如果有JavaScript对象:

var objects={...};

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


当前回答

通过使用简单的for..in循环:

for(var key in objects) {
    var value = objects[key];
}

其他回答

我知道我来晚了一点,但这是新firefox 47 Object的垫片。值方法

Object.prototype.values = Object.prototype.values || function(obj) {
  return this.keys(obj).map(function(key){
    return obj[key];
  });
};

你可以循环遍历键:

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

通过使用简单的for..in循环:

for(var key in objects) {
    var value = objects[key];
}

对象。条目可以更好地做到这一点。

var dataObject = {" a ":{“标题”:“店”},“b”:{“标题”:“家”}} Object.entries (dataObject)。map(itemArray => { console.log("key=", itemArray[0], "value=", itemArray[1]) })

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

val for key,val of objects

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

objects[key] for key of objects