JS 两个对象数组 根据相同id进行合并
let arr1 = [
{id: 1,name: '张三',age: '18'},
{id: 2,name: '王五',age: '19'},
{id: 3,name: '李四',age: '20'}
]
let arr2 = [
{id: 1,day: '周一',age: '28'},
{id: 2,day: '周二',age: '29'},
{id: 3,day: '周三',age: '30'}
]
const arr3 = arr2.reduce((acc, cur) => {
const target = acc.find(e => e.id === cur.id);
if (target) {
Object.assign(target, cur);
} else {
acc.push(cur);
}
return acc;
}, arr1);
console.log(arr3)
输出后的代码:
let arr1 = [
{id: 1,name: '张三',age: '18'},
{id: 2,name: '王五',age: '19'},
{id: 3,name: '李四',age: '20'}
]
let arr2 = [
{id: 1,day: '周一',age: '28'},
{id: 2,day: '周二',age: '29'},
{id: 3,day: '周三',age: '30'}
]
function arr3(arr1, arr2) {
const combined = arr1.map((item1) => {
arr2.map((item2) => {
if (item1.id === item2.id) {
Object.assign(item1, item2)
}
})
return item1
})
return combined
}
console.log(arr3(arr1, arr2))