数组的交集,并集,差集的操作方法

数组的交集,合集,差集的操作方法

这星期开发项目中遇到一个项目开发的问题,假设我们有几种通道,每种通道对应几种行为方案,我们根据通道下面的行为去制定策略
业务场景 有多个通道的勾选框,然后根据已勾选的通道,动态筛选出对应的下拉框行为.从而一步一步的制定策略行为!
假设我们要制定一个策略行为,这个策略行为有五种通道供我们选择,分别为

let arr={
     a:[1,2,3], //通道a,以及a所携带的行为
     b:[2,3,4], //通道b,以及b所携带的行为
     c:[3,4,5], //通道c,以及c所携带的行为
     d:[1,3,4,5], //通道d,以及d所携带的行为
     e:[2,3,4,5,6], //通道 e,以及 e所携带的行为 
}

策略第一步勾选了 a,b ,d通道,那么我们就要选择a,b,d,都存在的一种行为才能,完成策略的第一步

  在这里我们获得了后端返回的数据,为了以防行为下拉框重复我们可以使用new Set()去重!
  a:[1,2,3]
  b:[2,3,4]
  d:[1,3,4,5]
  因为我们要取到对应的交集,操作如下
  let a1 = new Set(new Set([...a].filter(v => b.has(v))))
  console.log([...a1])  //[2,3]
  let d1 = new Set(new Set([...a1].filter(v => d.has(v))))
  console.log([...d1] //[3]
  策略的第一步就完成了,后续再勾选剩余的c,d完成策略的第二步也是如此
  c:[3,4,5]
  e:[2,3,4,5,6]
  let c1 = new Set(new Set([...c].filter(v => e.has(v))))
  console.log([...c1]) //[3,4,5]
  这都是取交集,而差集是
  let a2 = new Set(new Set([...a].filter(v => !b.has(v))))
  console.log([...a2]) //[1] a的差集
  取合集
  let a3 = new Set([...a, ...b])
  console.log([...a3]) //[1,2,3,4] a,b的合集数组
 
 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值