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 相关文章推荐
彪哥1.1(智能表格)提供下载
Sep 07 Javascript
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
prototype与jquery下Ajax实现的差别
Sep 13 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
Apr 15 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
jQuery UI插件自定义confirm确认框的方法
Mar 20 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
vuex实现的简单购物车功能示例
Feb 13 Javascript
JavaScript实现单点登录的示例
Sep 23 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 上传文件的方法(类)
2009/07/30 PHP
php中的常用魔术方法总结
2013/08/02 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
通过C++学习Python
2015/01/20 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
对Python函数设计规范详解
2019/07/19 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
python实现小世界网络生成
2019/11/21 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
六十岁生日答谢词
2014/01/10 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫