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使用location.search的示例
Nov 05 Javascript
JS删除字符串中重复字符方法
Mar 09 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
Aug 26 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
基于angular2 的 http服务封装的实例代码
Jun 29 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
vue实现把接口单独存放在一个文件方式
Aug 13 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的性能
2013/10/30 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
使用python生成目录树
2018/03/29 Python
python 编写简单网页服务器的实例
2018/06/01 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
服装厂厂长职责
2013/12/16 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
小学安全汇报材料
2014/08/14 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
后天观后感
2015/06/08 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python
Python中re模块的元字符使用小结
2022/04/07 Python