• 技术文章 >web前端 >前端问答

    es6怎么求两个数组的交集

    青灯夜游青灯夜游2022-04-19 19:04:49原创144

    实现方法:1、使用“new Set(数组)”语句将两个数组都转换为set集合类型;2、使用“new Set([...集合1].filter(x => 集合2.has(x)))”语句获取两个集合的交集即可,会返回一个包含全部交集元素的新集合。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    在es6中,可以利用set对象的has() 方法配合数组的filter()来求两个数组的交集。

    let a=[1, 2, 3];
    let b=[3, 5, 2];
    newA = new Set(a);
    newB = new Set(b); 
    let intersectionSet = new Set([...newA].filter(x => newB.has(x)));
    console.log(intersectionSet);

    1.png

    可以看出此时,交集元素被包含在一个set集合中返回,可利用Array.from方法将集合转为数组类型

    let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x))));
    console.log(intersectionSet);

    2.png

    扩展知识:求并集/差集

    let a = new Set([1, 2, 3]);
    let b = new Set([3, 5, 2]); 
    
    // 并集
    let unionSet = new Set([...a, ...b]);
    //[1,2,3,5]
    
    // ab差集
    let differenceABSet = new Set([...a].filter(x => !b.has(x)));

    【相关推荐:javascript视频教程web前端

    以上就是es6怎么求两个数组的交集的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ES6
    上一篇:es6怎么将数字转为字符串 下一篇:es6核心特性是什么
    Web大前端开发直播班

    相关文章推荐

    • es6声明变量必须初始化吗• 你说你会用ES6,那赶紧用上啊!• es6怎么判断值是否为空• es6静态属性和实例属性的区别是什么• es6中let和const的区别有哪些

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网