面试题 - 求两个数组的并集、交集、差集

求两个数组的并集、交集、差集

案例

求数组 A [1,2,3,4] 和数组 B [2,3,5,6] 并集、交集和差集。

思路分析

  1. 求并集的思路就是对合并的两个数组去重,去重最简单的办法就是使用 Set 集合;
  2. 求交集的思路就是轮询一个数组在另一个数组中是否出现,可通过 indexOf 或者 incloud 判断;
  3. 求差集的思路是取并集中的非交集。

代码实现

    var arr1 = [1,2,3,4];
    var arr2 = [3,4,5,6];
    //求并集
    function union(...arg) {
        var arr = [...arg[0],...arg[1]];
        var newArr = Array.from(new Set(arr));
        return newArr;
    }
     //求交集
    function intersection(...arg) {
        var arr = arg[0].filter((item)=>arg[1].includes(item));
        return arr;
    }
     //求差集
    function difference(...arg) {
        var arr = union(...arg).filter((item)=>!intersection(...arg).includes(item));
        return arr;
    }
    console.log(union(arr1,arr2));//[1,2,3,4,5,6]
    console.log(intersection(arr1,arr2));//[3,4]
    console.log(difference(arr1,arr2));//[1,2,5,6]

在这里插入图片描述

发布了252 篇原创文章 · 获赞 2360 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_44135121/article/details/103325659