js关于数组合并的问题

`

list1 = [{id:1,name:'a'},{id:2,name:'b'}],
list2 = [{id:1,name:'aa'},{id:2,name:'bb'},{id:3,name:'cc'}]

`

比较两个数组,怎么把list2里id为3对象push到list1里(list1里不存在的对象)

阅读 1.8k
3 个回答
const resule = [...list1, ...list2.filter(item => !list1.some(r => r.id===item.id))]

解构赋值即可

console.log( Object.values({...list2,...list1}))
function mergeList(source, target) {
    var ids = target.reduce((res, item) => (res.add(item.id), res), new Set)
    return target.concat( source.filter(item => !ids.has(item.id)) )
}

mergeList(list2, list1)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题