js差集并集与交集

前端中去重已经很多了,但是工作中有时候遇到的情况是两个数组之间的对比
本文摘抄于知乎,详情见下方链接

const arr1 = [1,2,3,4,5];
const arr2 = [4,5,6,7,8];

1.交集

function union (arr1, arr2){
  return [...new Set(arr1)].filter((item) => new Set(arr2).has(item))
}

2.并集

function combine(arr1, arr2){
  return [...new Set([...new Set(arr1), ...new Set(arr2)])];
}

3.差集

function diff (arr1, arr2){
  const diffArr1 = [...new Set(arr1)].filter((item) => !new Set(arr2).has(item));
  const diffArr2 = [...new Set(arr2)].filter((item) => !new Set(arr1).has(item));
  return [...diffArr1, ...diffArr2]
}

窃以为结合reduce会更好用一些,这个以后再研究。
原文链接:https://zhuanlan.zhihu.com/p/262553053

以上。

作者:致爱丽丝
本文版权归作者和博客园共有,欢迎转载,但必须在文章页面给出原文链接并标名原文作者,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/hjk1124/p/15126331.html