合并对象数组

712 阅读1分钟
a = [{id: 0, name: '张三', age: 18},{id: 1, name: '李四', age: 17}]
b = [{id: 0, grade: 99},{id:1, grade: 88}]
    
期望得到:
c = [{id: 0, name: '张三', age: 18, grade: 99},{id: 1, name: '李四', age: 17, grade: 88}]

目标是能够根据ID,将两个对象数组合并成一个数组对象

forEach

b.forEach(item=>{
const index=this.a.findIndex(item2=>item2.id===item.id)
if(index!==-1) a[index].grade=item.grade
})

image.png

其实这个办法是比较笨的,首先是两次遍历导致性能损耗,其次如果在数据量比较大的情况下一一去赋值也很笨拙。