如何在javascript中将一个数组的现有数组对象替换为另一个数组
我的要求:我需要用arr2中id相同但名称值不同的arr2替换aar1 下面是我应该在arr1中得到的结果如何在javascript中将一个数组的现有数组对象替换为另一个数组,javascript,Javascript,我的要求:我需要用arr2中id相同但名称值不同的arr2替换aar1 下面是我应该在arr1中得到的结果 var arr1 = [{ id: '111', name: 'aaa' }, { id: '222', name: 'bbb' }, { id: '333', name: 'ccc' }, { id: '444', name: 'ddd' }]; var arr2 = [{ id: '111', name
var arr1 = [{
id: '111',
name: 'aaa'
}, {
id: '222',
name: 'bbb'
}, {
id: '333',
name: 'ccc'
}, {
id: '444',
name: 'ddd'
}];
var arr2 = [{
id: '111',
name: 'xyz'
}, {
id: '333',
name: 'abc'
}];
您可以使用map和find替换arr1中的arr2名称。 map函数遍历arr1的每个元素,find将匹配id并返回匹配的对象(如果找到)。如果找不到,我们将使用| |运算符返回arr1项
var arr1 = [{
id: '111',
name: 'xyz'
}, {
id: '222',
name: 'bbb'
}, {
id: '333',
name: 'abc'
}, {
id: '444',
name: 'ddd'
}];
工作示例:
变量arr1=[{
id:'111',
名称:“aaa”
}, {
id:'222',
名称:“bbb”
}, {
id:'333',
名称:“ccc”
}, {
id:'444',
名称:“ddd”
}];
var arr2=[{
id:'111',
名称:“xyz”
}, {
id:'333',
姓名:“abc”
}];
const result=arr1.mapitem=>arr2.finditem2=>item.id==item2.id | item
console.logresult这是我对问题的解释。 仅当在arr2中找到id时才复制名称
const result = arr1.map(item => arr2.find(item2 => item.id === item2.id) || item)
@str的可能副本不要将此任务标记为可能的副本。我问这个问题是为了满足我的要求。前面的问题是针对不同的要求,有什么不同?即使你得到的答案与副本中的答案完全相同。你应该解释地图、查找和| | |正在做什么
arr1.forEach(e1 => {
var e2 = arr2.find( e => e.id === e1.id );
if (e2) { e1.name = e2.name; }
});