簡體   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