js判断两个数组相等的5种方法


Posted in Javascript onMay 06, 2022

前言

在 js 中是不能直接用 == 或者 === 来比较两个数组是否相等,那就需要对数组的值进行比较。

下面各种方法,要根据具体情况来使用。

一、 toString()

当两个数组元素类型相同,顺序相同时,直接判断是否相等,结果不相等;转化为字符串后,结果相等

[1,2,3].toString() === [1, 2, 3].toString(); // true
[1,2,3].toString() === ['1', 2, 3].toString(); // true

二、join()

[1,2,3,'4'].join() === [1,2,3, 4].join(); // true

三、 JSON.stringify()

JSON.stringify([{name:'许善祥'},{sex:'男'}]) == JSON.stringify([{name:'许善祥'},{sex:'男'}]); // true

四、sort()

当两个数组元素排序不相同时,先排序,再比较。如果是对象数组,可以结合 JSON.stringify 来使用。

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

var c = a.length === b.length && a.sort().toString() === b.sort().toString();

console.log(c); // true

五、filter()

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

var c = a.length === b.length && a.filter(t => !b.includes(t));

console.log(c); // true

filter() 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
语法:
array.filter(function(currentValue,index,arr), thisValue);

附:JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。

只就需要先将数组进行排序,再比较两个数组是否相等。

试比较以下两行代码:

<script type="text/javascript">
        alert([1,2,3].toString()== [3,2,1].toString());
        alert([1,2,3].<strong>sort</strong>().toString()== [3,2,1].<strong>sort</strong>().toString());
</script>

总结 

到此这篇关于js判断两个数组相等的文章就介绍到这了,更多相关js判断数组相等内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Javascript 相关文章推荐
深入认识JavaScript中的函数
Jan 22 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
封装了jQuery的Ajax请求全局配置
Feb 05 Javascript
AngularJS的表单使用详解
Jun 17 Javascript
AngularJS  自定义指令详解及实例代码
Sep 14 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
Mar 10 Javascript
js实现自定义进度条效果
Mar 15 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 Javascript
vue使用watch监听属性变化
Apr 30 #Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
vue项目如何打包之项目打包优化(让打包的js文件变小)
关于vue-router-link选择样式设置
Apr 30 #Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 #Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 #Vue.js
Vue操作Storage本地化存储
Apr 29 #Vue.js
You might like
介绍几个array库的新函数 php
2006/12/29 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
JS与框架页的操作代码
2010/01/17 Javascript
围观tangram js库
2010/12/28 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python有序查找算法之二分法实例分析
2017/12/11 Python
python验证码识别实例代码
2018/02/03 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
十佳班主任事迹材料
2014/01/18 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
质检员工作总结2015
2015/04/25 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
大学生读书笔记大全
2015/07/01 职场文书
销售口号霸气押韵
2015/12/24 职场文书