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 相关文章推荐
网易JS面试题与Javascript词法作用域说明
Nov 09 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
jQuery实现获取元素索引值index的方法
Sep 18 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
JS中判断null的方法分析
Nov 21 Javascript
JavaScript面试题(指针、帽子和女朋友)
Nov 23 Javascript
jQuery快速高效制作网页交互特效
Feb 24 Javascript
jQuery实现动态显示select下拉列表数据的方法
Feb 05 jQuery
Node 升级到最新稳定版的方法分享
May 17 Javascript
Vue自定义多选组件使用详解
Sep 08 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
php中一个有意思的日期逻辑处理
2012/03/25 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
js 获取radio按钮值的实例
2013/08/17 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
Django框架安装方法图文详解
2019/11/04 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
sort命令的作用和用法
2013/08/25 面试题
新教师岗前培训方案
2014/06/05 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
2015小学师德工作总结
2015/07/21 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
MySQL 如何分析查询性能
2021/05/12 MySQL