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 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
javascript操作select元素实例分析
Mar 27 Javascript
常用DOM整理
Jun 16 Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 Javascript
Bootstrap入门书籍之(一)排版
Feb 17 Javascript
深入浅析JavaScript中数据共享和数据传递
Apr 25 Javascript
Javascript必知必会(四)js类型转换
Jun 08 Javascript
JS判断iframe是否加载完成的方法
Aug 03 Javascript
js轮播图的插件化封装详解
Jul 17 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
ant design vue的form表单取值方法
Jun 01 Vue.js
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中日期加减法运算实现代码
2011/12/08 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python 多线程重启方法
2019/02/18 Python
python的turtle库使用详解
2019/05/10 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
Python安装Bs4的多种方法
2020/11/28 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
财务部出纳岗位职责
2013/12/22 职场文书
创意婚礼策划方案
2014/05/18 职场文书
解除施工合同协议书
2014/10/17 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
运动会致辞稿
2015/07/29 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
Golang流模式之grpc的四种数据流
2022/04/13 Golang