gpt4 book ai didi

Javascript连接并覆盖具有相同id的元素

转载 作者:行者123 更新时间:2023-12-01 02:57:06 24 4
gpt4 key购买 nike

是否可以将两个数组与对象连接起来,并让第二个数组覆盖第一个具有相同 id 的数组:

// array 1
[
{id: 1, name: "foo"},
{id: 2, name: "bar"},
{id: 3, name: "baz"}
]

// array 2:
[
{id: 1, name: "newFoo"},
{id: 4, name: "y"},
{id: 5, name: "z"}
]

// out:
[
{id: 1, name: "newFoo"}, // overwriten by array 2
{id: 2, name: "bar"}, // not changed (from array 1)
{id: 3, name: "baz"}, // not changed (from array 1)
{id: 4, name: "y"}, // added (from array 2)
{id: 5, name: "z"} // added (from array 2)
]

如果可能的话,我想在不使用第三方库的情况下做到这一点

最佳答案

var a = [
{id: 1, name: "foo"},
{id: 2, name: "bar"},
{id: 3, name: "baz"}
];

var b = [
{id: 1, name: "fooboo"},
{id: 4, name: "bar"},
{id: 5, name: "baz"}
];

/* iterate through each of b, if match found in a, extend with that of a. else push into b ...*/
b.forEach(m => {
var item = a.find(n => n.id === m.id);
if(item) { return Object.assign(item, m); }
a.push(m);
});

console.log(a);

关于Javascript连接并覆盖具有相同id的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46653471/

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