本文介绍了替换数组中的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个javascript对象:
I have this javascript object:
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'}]
我需要用相同 id 的 arr2 中的项目替换 arr1 中的对象.
I need to replace objects in arr1 with items from arr2 with same id.
这就是我想要得到的结果:
So here is the result I want to get:
var arr1 = [{id:'124',name:'ttt'},
{id:'589',name:'www'},
{id:'45',name:'yyy'},
{id:'567',name:'rrr'}]
如何使用javascript实现它?
How can I implement it using javascript?
推荐答案
您可以使用 Array#map
和 Array#find
.
You can use Array#map
with 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
中找到id
,则arr2.find(o => o.id === obj.id)
将从arr2
返回元素,即对象.如果不是,则返回arr1
中相同的元素,即obj
.
Here, arr2.find(o => o.id === obj.id)
will return the element i.e. object from arr2
if the id
is found in the arr2
. If not, then the same element in arr1
i.e. obj
is returned.
这篇关于替换数组中的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!