如何使用javascript为给定数据合并两个对象数组。
var data = [{
"key": 2000,
"value": 10000
}, {
"key": 2001,
"value": 50000
}];
var data1 = [{
"key": [2000, 0],
"value": 1000
}, {
"key": [2000, 1],
"value": 1500
}, {
"key": [2000, 3],
"value": 2000
}, {
"key": [2001, 0],
"value": 2500
}, {
"key": [2001, 1],
"value": 3000
}, {
"key": [2001, 3],
"value": 4000
}];
最后输出如下:
var data3 = [{
"key": 2000,
"value": 10000,
children: [{
"key": [2000, 0],
"value": 1000
}, {
"key": [2000, 1],
"value": 1500
}, {
"key": [2000, 3],
"value": 2000
}]
}, {
"key": 2001,
"value": 50000,
children: [{
"key": [2001, 0],
"value": 2500
}, {
"key": [2001, 1],
"value": 3000
}, {
"key": [2001, 3],
"value": 4000
}]
}]
答案 0 :(得分:1)
这次迭代的次数与数组data1中的对象一样多。
然后,在每次迭代中,它会将data1中的对象(等于变量count)添加到数据中。
之后,它将使变量data1未定义。
for(var count = 0; count < data1.length; count++){
data.push(data1[count]);
}
data1 = undefined;
&#13;
答案 1 :(得分:1)
您可以通过使用forEach
循环迭代给定的2个数组来实现此目的。
工作代码段
var data = [{
"key": 2000,
"value": 10000
}, {
"key": 2001,
"value": 50000
}];
var data1 = [{
"key": [2000, 0],
"value": 1000
}, {
"key": [2000, 1],
"value": 1500
}, {
"key": [2000, 3],
"value": 2000
}, {
"key": [2001, 0],
"value": 2500
}, {
"key": [2001, 1],
"value": 3000
}, {
"key": [2001, 3],
"value": 4000
}];
data.forEach(function(parentObj){ // loop over data
parentObj.children = []; // initialize the children
data1.forEach(function(childObj){ // loop over data1
if(parentObj["key"] === childObj["key"][0])
parentObj.children.push(childObj);
});
});
console.dir(data);
<p>Please check your browser's console now.</p>
答案 2 :(得分:0)
它是多维数组。请查看演示链接,如下所示。
这是演示链接点击enter code here
[此处](http://jsfiddle.net/ambiguous/twpUF/)