JS 数组差集、交集、并集

这篇博客介绍了如何使用JavaScript来计算两个数组的差集、并集和交集。通过filter、reduce和map等方法,分别展示了如何找出两个对象数组中独有的元素,合并两个数组并去除重复项,以及找出两个数组中共有的元素。示例代码清晰易懂,适用于前端开发中的数据处理场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 let arr1=[{id:1, name:"Bob"},{id:2,name:"Jmu"},{id:3,name:"Timi" }]
 let arr2=[{ id:1,name:"Bob"},{id:2,name:"Matis"},{id:4,name:"Com"},{id:5,name:"Coco"}]

1.差集

  let result=arr2.filter(v => {
      return arr1.every(i => i.id != v.id);
    });
	 console.log(result);  //[ {id: 4, name: "Com"}, {id: 5, name: "Coco"}]
  let result1=arr1.filter(v => {
    return arr2.every(i => i.id != v.id);
  });
  	console.log(result1);  //[ {id: 3, name: "Timi"}]

2.并集

    let arr3 = arr1.concat(arr2)
    let obj = [],result2=[];
    result2 = arr3.reduce( (prev, cur)=> {
      obj[cur.id] ? '' : obj[cur.id] = true && prev.push(cur)
      return prev
    }, [])
    console.log(result2);//[ {id: 1, name: "Bob"},{id: 2, name: "Jmu"},{id: 3, name: "Timi"},{id: 4, name: "Com"},{id: 5, name: "Coco"}]
 

3.交集

   let arr4 = arr1.map(item=>item.id)
   let result3 = arr2.filter(v=>{
     return new Set(arr4).has(v.id)
   })
   console.log(result3) //[{id: 1, name: "Bob"}, {id: 2, name: "Matis"}]
   
   let arr5 = arr2.map(item=>item.id)
   let result4 = arr1.filter(v=>{
     return new Set(arr5).has(v.id)
   })
   console.log(result4) //[{id: 1, name: "Bob"},{id: 2, name: "Jmu"}]
    

特别注意:在使用时,注意数组先后顺序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值