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 相关文章推荐
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
javascript 获取浏览器版本
Jan 21 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 Javascript
innerHTML中标签可以换行的方法汇总
Aug 14 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
Dec 03 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 Javascript
js 显示日期时间的实例(时间过一秒加1)
Oct 25 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
JS中数据结构之栈
Jan 01 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
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 cron中的批处理
2008/09/16 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
基于php split()函数的用法详解
2013/06/05 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
简单了解Django模板的使用
2017/12/20 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
总经理职责
2013/12/22 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
大学新生军训方案
2014/05/03 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
2014年后勤工作总结
2014/11/18 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
电影开国大典观后感
2015/06/04 职场文书
MySQL的join buffer原理
2021/04/29 MySQL