js 获取两个数组的相同元素和不同元素(简易方法)

1、获取两个数组的不同元素

function getDiff(arr1, arr2) {
  return arr1.concat(arr2).filter((item, index, arr) => 
    arr.indexOf(item) === arr.lastIndexOf(item)
  )
}
// eg:
var a1 = [1, 2, 3, 4, 5], 
    a2 = [2, 3, 4, 5, 6];
getDiff(a1, a2);  // [1, 6]

concat 用来合并两个数组,也可以写成[...arr1, ...arr2]; filter用来过滤数组,参数arr表示合并后的数组;indexOf表示元素第一次出现的位置,lastIndexOf表示元素最后一次出现的位置。

2、获取两个数组的相同元素

function getSame(arr1, arr2) {
  return [...new Set(arr1)].filter(item => 
    arr2.includes(item)
  )
}
// eg:
var a1 = [1, 2, 3, 3, 4, 5], 
    a2 = [2, 3, 4, 5, 6];
getSame(a1, a2); // [2, 3, 4, 5]

Set方法是es6新增的方法,用来去重;以上方法通过过滤数组a1,遍历每一项,找到a2和a1的交集。


感谢浏览,如果大家有更简易的方法,欢迎评论区留言讨论~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容