gpt4 book ai didi

Javascript/Angular JS 搜索数组对象到数组对象

转载 作者:行者123 更新时间:2023-11-30 15:22:17 24 4
gpt4 key购买 nike

我的问题是:

我有 2 个这样的数组对象

var array1 = [{ "id": 1, "name": "potatoe", photo="photo"}, {"id": 2, "name": "budget"}]

var array2 = [{ "id": 1, "name": "potatoeModified"},{ "id": 3, "name":
"UhOhAnotherName"}, {"id": 2, "name": "budget"}]

我想搜索数组 2 中是否有 array1 ID 对象,如果是 id 1 = 1 名称将被替换,如果不存在则添加 id 3。

结果会是

[{ "id": 1, "name": "potatoeModified", photo="photo"}, {"id": 2, "name": "budget"},
{ "id": 3, "name": "UhOhAnotherName"}]

我尝试这样做,但每次我都得到一个圈复杂度太高的函数,我不想为此使用一个超大函数。我认为解决方案很简单,但我太盲目了.....谢谢:)

最佳答案

尝试以下操作:

var array1 = [{ "id": 1, "name": "potatoe", "photo":"photo"}, {"id": 2, "name": "budget"}];

var array2 = [{ "id": 1, "name": "potatoeModified"},{ "id": 3, "name":
"UhOhAnotherName"}, {"id": 2, "name": "budget"}];

array1.map(function(val,i){
array2.forEach(function(v){
if(val.id == v.id){
val.name = v.name;
}
else{
var found = array1.some(function (el) {
return el.id === v.id;
});
if (!found) { array1.push(v); }
}
})

return val;
});

console.log(array1);

关于Javascript/Angular JS 搜索数组对象到数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553254/

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