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

    es6怎么检测两个数组是否有相同项

    青灯夜游青灯夜游2022-10-21 14:42:12原创421

    检测步骤:1、将两数组都转换为set类型,语法“new Set(arr)”;2、获取两集合的交集,语法“new Set([...set1].filter(x=>set2.has(x)))”,交集元素会被包含在一个set集合中返回;3、将包含交集元素的set集合转为数组类型,语法“Array.from(rse)”;4、判断交集数组是否为空数组,如果是则没有相同项,反之则有相同项。

    大前端零基础入门到就业:进入学习

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

    检测两个数组是否有相同项,就是检测两个数组是否有交集。

    检测思想:

    实现步骤:

    1、获取两个数组的交集

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

    注:想要使用has()方法,需要先将数组转为set集合类型

    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集合中返回

    2、将包含交集元素的set集合转为数组类型

    在es6中,可以利用Array.from方法将集合转为数组类型

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

    2.png

    3、判断交集数组是否为空数组

    if(intersectionSet==[]){
    	console.log("没有相同项");
    }else{
    	console.log("有相同项");
    }

    完整代码示例:

    let a=[1, 2, 3];
    let b=[3, 5, 2];
    console.log(a);
    console.log(b);
    newA = new Set(a);
    newB = new Set(b); 
    let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x))));
    console.log("两个数组的交集:");
    console.log(intersectionSet);
    if(intersectionSet==[]){
    	console.log("没有相同项");
    }else{
    	console.log("有相同项");
    }

    3.png

    【相关推荐:javascript视频教程编程视频

    以上就是es6怎么检测两个数组是否有相同项的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:javascript ES6
    上一篇:javascript是基于java的吗 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• javascript中控制台是什么• JavaScript怎么输入N个数据求平均数• 一文详解JavaScript中执行上下文与执行栈(图文结合)• javascript怎么求总分和平均值• javascript有没有返回值
    1/1

    PHP中文网