访问在对象数组中具有未知属性名称的生成属性

时间:2015-08-14 14:40:33

标签: javascript arrays object

使用以下生成的数组示例结构,如何遍历并从每个对象中提取属性名称及其关联值?

browser.div(css: '.first_class.second_class')

对象数量可能会发生变化,属性名称也不一致。

2 个答案:

答案 0 :(得分:6)

您可以使用Object.keys()[0]获取密钥,然后使用密钥获取值。

JSFiddle



var myData = [{"bg_2":"0.50"},{"bg_7":"0.10"},{"bg_12":"0.20"}];

for (var i = 0; i < myData.length; i++) {
    var myObject = myData[i];
    var firstKey = Object.keys(myObject)[0];
    var value = myObject[firstKey];

    console.log(firstKey + ": " + value);
}
&#13;
&#13;
&#13;

另请参阅:ECMAScript® Language Specification: 15.2.3.14 Object.keys ( O )

答案 1 :(得分:3)

扩展@AR7&#39; answer,如果每个对象中可能有多个属性,您可以缓存Object.keys()返回的对象并循环显示数组循环中的每个属性。

使用以下方法,您可以处理对象中的任意数量的属性。

我意识到在这种特定情况下,这可能不比上述答案更有用,但希望它对未来的观众有用。

JSFiddle

&#13;
&#13;
var a = [
    { "bg_2":"0.50", "bg_7":"0.10", "bg_12":"0.20"},
    { "bg_2":"0.50", "bg_7":"0.10"},
    { "bg_2":"0.50"}
];

a.forEach(function(o){
    console.log(o);
    var k = Object.keys(o);
    for(var i in k)
        console.log(k[i], ':', o[k[i]]);
});
&#13;
&#13;
&#13;