gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:17:08 24 4
gpt4 key购买 nike

如何使用 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
}]
}]

最佳答案

您可以通过使用 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>

Source

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

关于javascript - 如何使用javascript合并两个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29470101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com