如何比较两个对象数组并更改两个数组中找到的值? [英] How can I compare two arrays of objects and change a value for those that are found in both arrays?
本文介绍了如何比较两个对象数组并更改两个数组中找到的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有两个对象数组:
Let's say I have two arrays of objects:
let array1 = [
{
id: 1,
name: 'snow'
},
{
id: 4,
name: 'jo'
},
{
id: 8,
name: 'bran'
},
{
id: 12,
name: 'gondo'
},
{
id: 13,
name: 'peter'
}
]
let array2 = [
{
id: 3,
name: 'brim'
},
{
id: 4,
name: 'not-jo'
},
{
id: 8,
name: 'not-bran'
},
{
id: 13,
name: 'spleen'
}
]
我想找到所有array2中与id匹配的对象array1,并更改其名称值以匹配array1中的名称值。
I want to find all the objects in array2 that match by id with array1, and change their name values to match the name values in array1.
在我的伪代码中:
array1.forEach((person)=> {
if(person.id is equal to person.id in array2){
person.name = person.name in array1
}
})
推荐答案
试试这个:
array2.map(function(x){
var result=array1.filter(a1=> a1.id==x.id);
if(result.length>0) { x.name=result[0].name;}
return x })
这篇关于如何比较两个对象数组并更改两个数组中找到的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文