繁体   English   中英

如何使用JavaScript合并两个对象数组

[英]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> 

资源

阅读: Array.prototype.forEach() | MDN

它是多维数组。 请按以下方式检查演示链接。 这是演示链接,请单击enter code here [此处] enter code herehttp://jsfiddle.net/ambiguous/twpUF/

暂无
暂无

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

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