gpt4 book ai didi

javascript - 合并多个具有不同 ID 的对象数组

转载 作者:行者123 更新时间:2023-11-29 10:07:04 27 4
gpt4 key购买 nike

我需要通过公共(public) ID 合并多个 json 对象。我的问题是我的对象具有不同的 ID 键。

var object1 = [
{ "name":"apples" ,"w": 1, "x": 2 },
{ "name":"banana" ,"w": 1, "x": 2 },
{ "name":"cherry" ,"w": 1, "x": 2 },
];
var object2 = [
{ "type":"banana" ,"y": 3, "x": 4 },
{ "type":"cherry" ,"y": 3, "x": 4 },
];

我想获得:

var object1 = [
{ "name":"apples" ,"w": 1, "x": 2 },
{ "name":"banana" ,"w": 1, "x": 4, "y": 3 },
{ "name":"cherry" ,"w": 1, "x": 4, "y": 3 },
];

我想使用相同的数组 [object1] 而不是创建一个新数组。我创建了一个 codepen here

最佳答案

您可以使用 reduce() 来创建新数组并查找以检查 object2 对象中是否存在具有相同类型的同名对象。

var object1 = [
{ "name":"apples" ,"w": 1, "x": 2 },
{ "name":"banana" ,"w": 1, "x": 2 },
{ "name":"cherry" ,"w": 1, "x": 2 },
];
var object2 = [
{ "type":"banana" ,"y": 3, "x": 4 },
{ "type":"cherry" ,"y": 3, "x": 4 },
];


var result = object1.reduce(function(r, e) {
var o = object2.find(a => e.name == a.type);
r.push(o ? Object.assign({}, e, {x: o.x, y: o.y}) : e);
return r;
}, [])

console.log(result)

关于javascript - 合并多个具有不同 ID 的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398048/

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