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