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 相关文章推荐
window.location和document.location的区别分析
Dec 23 Javascript
Cookie 注入是怎样产生的
Apr 08 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
vue.js将unix时间戳转换为自定义时间格式
Jan 03 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
Feb 28 Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
Vue.js标签页组件使用方法详解
Oct 19 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邮件类
2007/01/03 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
实现两个文本框同时输入的实例
2017/09/25 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
js 函数性能比较方法
2020/08/24 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
python对url格式解析的方法
2015/05/13 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python中logging实例讲解
2019/01/17 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
MYSQL支持事务吗
2013/08/09 面试题
物理研修随笔感言
2014/02/14 职场文书
工程部主管岗位职责
2015/02/12 职场文书
升学宴家长答谢词
2015/09/29 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技