我有这个 javascript 对象:
var arr1 = [{id:'124',name:'qqq'},
{id:'589',name:'www'},
{id:'45',name:'eee'},
{id:'567',name:'rrr'}]
var arr2 = [{id:'124',name:'ttt'},
{id:'45',name:'yyy'}]
我需要替换 中的对象arr1 来自 的项目arr2 同编号 .
所以这是我想要得到的结果:
var arr1 = [{id:'124',name:'ttt'},
{id:'589',name:'www'},
{id:'45',name:'yyy'},
{id:'567',name:'rrr'}]
如何使用 javascript 实现它?
最佳答案
您可以使用 Array#map
与 Array#find
.
arr1.map(obj => arr2.find(o => o.id === obj.id) || obj);
var arr1 = [{
id: '124',
name: 'qqq'
}, {
id: '589',
name: 'www'
}, {
id: '45',
name: 'eee'
}, {
id: '567',
name: 'rrr'
}];
var arr2 = [{
id: '124',
name: 'ttt'
}, {
id: '45',
name: 'yyy'
}];
var res = arr1.map(obj => arr2.find(o => o.id === obj.id) || obj);
console.log(res);
在这里,
arr2.find(o => o.id === obj.id)
将返回元素,即来自 arr2
的对象如果 id
可在 arr2
中找到.如果不是,那么 arr1
中的相同元素即obj
被退回。
关于javascript - 替换数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37585309/