[英]How to merge the two array of objects using javascript
如何使用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 }] }]
迭代次数与数组data1中存在对象的次数相同。
然后,在每次迭代中,它将data1中的对象(等于变量计数)添加到data中。
之后,它将使变量data1不确定。
for(var count = 0; count < data1.length; count++){ data.push(data1[count]); } data1 = undefined;
您可以通过使用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>
它是多维数组。 请按以下方式检查演示链接。 这是演示链接,请单击enter code here
[此处] enter code here
( http://jsfiddle.net/ambiguous/twpUF/ )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.