鍍金池/ 問(wèn)答/HTML/ es6方法過(guò)濾掉兩個(gè)數(shù)組中對(duì)象id值相等的項(xiàng)

es6方法過(guò)濾掉兩個(gè)數(shù)組中對(duì)象id值相等的項(xiàng)

const arr1=[{id:1,name:'網(wǎng)'},{id:2,name:'二位'}]
const arr2=[{id:1,name:'老二'},{id:3,name:'老三'}]

es6方法過(guò)濾掉arr2中id和arr1 id相同的項(xiàng)

回答
編輯回答
薄荷糖

供參考

const s2 = new Set(arr2.map(x => x.id))
const new1 = arr1.filter(x => !s2.delete(x.id))
const new2 = arr2.filter(x => s2.has(x.id))
2017年9月26日 05:58
編輯回答
故林

我自己來(lái)分享個(gè)

 let arr1=[{id:1,name:'網(wǎng)'},{id:2,name:'二位'}]
 let arr2=[{id:1,name:'問(wèn)問(wèn)'},{id:3,name:'多少'},{id:44,name:'多少'},{id:45,name:'多少'},]

  let add=arr2.filter(item=>!arr1.some(ele=>ele.id===item.id))
  console.log(add)
2018年3月13日 21:38
編輯回答
愛(ài)礙唉

樓上答案更佳

const arr1 = [{ id: 1, name: '網(wǎng)' }, { id: 2, name: '二位' }]
const arr2 = [{ id: 1, name: '老二' }, { id: 3, name: '老三' }]
let ids = []
arr1.filter(item => ids.push(item.id))
const result = arr2.filter(item => ids.indexOf(item.id) == -1)
2017年11月21日 02:30
編輯回答
墨染殤
    let arr3 = arr2.filter((item1) => {
      return arr1.findIndex((item2) => {
        return item2.id == item1.id
      }) == -1
    })
    console.log(arr3)
2017年5月20日 21:08
編輯回答
不將就
const arr1 = [{ id: 1, name: '網(wǎng)' }, { id: 2, name: '二位' }];
const arr2 = [{ id: 1, name: '老二' }, { id: 3, name: '老三' }];
// 獲取到arr1的所有id集合
let arr1Ids = arr1.map(item => item.id);
// 過(guò)濾arr2中不包含arr1相同的id數(shù)組。
const result = arr2.filter(item => !arr1Ids.includes(item.id));
console.log(result); // [{id: 3, name: "老三"}];
2018年4月9日 17:12