文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

es6如何判断两个数组是否相等

2023-07-04 09:52

关注

这篇“es6如何判断两个数组是否相等”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“es6如何判断两个数组是否相等”文章吧。

步骤:1、用length属性获取两个数组的长度,并判断两长度是否相等,语法“数组1.length==数组2.length”;2、如果长度相等,则用“new Set(数组)”将两数组都转换为set类型,用“Array.from(new Set([...集合1].filter(x=>集合2.has(x))))”获取差集;3、判断差集数组是否为空数组,如果是则两数组相同,反之不相等。

判断两个数组是否相等,可以转换思想变为判断两个数组的长度是否相等且差集(包含不同元素)是否为空。

实现思想:

说明:如果数组有重复值,其数组长度不同,但没有不相同的元素(差集为空)

var a=[1, 2, 3];var b=[1,2,3,1,3];

es6如何判断两个数组是否相等

但这样的两个数组不可能相等,因此需要先判断数组长度是否相等。

实现步骤:

步骤1、使用length属性分别获取两个数组的长度,并判断两长度是否相等

每个数组都有一个length 属性,利用该属性可返回数组的最大长度,即其值等于最大下标值加 1。

var a=[1, 2, 3];var b=[1, 2, 3];console.log(a);console.log(b);if(a.length==b.length){console.log("两数组的长度相等");}else{console.log("两数组的长度不相等");}

es6如何判断两个数组是否相等

步骤2:如果两长度相等,则利用has()、filter()、from()方法来获取两数组的差集

has() 是set对象的一个方法,因此想要使用has()方法,需要先将数组转为set集合类型。

newA = new Set(a);newB = new Set(b);

set对象的has() 方法配合数组的filter()可以求两个数组的交集,但交集元素会被包含在一个set集合中返回,不好进行为空比较;因此,需要利用Array.from方法将集合转为数组类型。

let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));

登录后复制

es6如何判断两个数组是否相等

说明:

步骤3:判断差集数组是否为空数组

if(differenceABSet.length==0){console.log("两数组相等");}else{console.log("两数组不相等");}

es6如何判断两个数组是否相等

完整实现代码(封装为一个函数)

function f(a, b) {newA = new Set(a);newB = new Set(b);if (a.length == b.length) {let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));console.log("两数组差集:");console.log(differenceABSet);if (differenceABSet.length == 0) {console.log("两数组相等");} else {console.log("两数组不相等");}} else {console.log("两数组不相等");}}

示例1:检查下面两个函数是否相等

var a = [1, 2, 3];var b = [1, 2, 3,3];console.log(a);console.log(b);f(a, b);

es6如何判断两个数组是否相等

示例2:检查下面两个函数是否相等

var a = [1, 2, 3];var b = [1, 2, 4];console.log(a);console.log(b);f(a, b);

es6如何判断两个数组是否相等

说明:差集中的元素是从被比较的数组(第一个数组a)中拿的。

以上就是关于“es6如何判断两个数组是否相等”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯