繁体   English   中英

JavaScript,使用不同对数键值循环对象

[英]JavaScript, loop objects with different number of pairs key-value

制作一个简单的条形图。 将显示的每个数据都具有以下结构:

var data = [{
    "id": "myId",
    "fillColor": "myColor"
},
{
    "id": "myId2",
    "fillColor": "myColor"
},
...]

现在,对于将显示的每一列:

var columns = [{
    "category": "My category", //what will be displayed as a label
    "myId": 200 //a value to fill
},
{
    "category": "Me second category",
    "myId2": 300
},
...]

在显示一个简单的栏时,我只是遍历数组,从“数据”中获取ID,并从“列”中显示值。

for(var i = 0; i < columns.length; i++) {
    id = data[i]["id"];
    //display the value with 
    value = columns[i][id]; //and display it later
}

所有这一切都运行良好。

现在,我需要做一个堆叠的条,所以首先,我想将数据中的“ id”添加到具有值的列中,例如在第一列中:

{
    "category": "My category",
    "myId": 200,
    "myId2": 150
},{
    "category": "My category2",
    "myId2": 300
}

这就是我卡住的地方。 我不知道如何遍历具有不同数量的键值对的对象的键值。 Javascript没有像PHP一样具有foreach()函数。

希望这更加明确。

我不知道如何遍历具有不同数量的键值对的对象的键值。 Javascript没有像PHP一样具有foreach()函数。

因此,JavaScript确实具有forEach ,以下是循环遍历以从对象获取键值的方法。

var myObj = [{
    "key1": "value1",
    "key2": "value2"
}, {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
}];

myObj.forEach(function(val, index) {
    for (var key in val) {
        alert ("Array item: " + (index+1) + " Key: " + key + " Value: " + val[key]);
    }
});

对于所有浏览器,包括<= IE8

for (var i=0, j=myObj.length; i<j; i++) {
    for (var key in myObj[i]) {
        alert ("Array item: " + (i+1) + " Key: " + key + " Value: " + myObj[i][key]);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM