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 相关文章推荐
高性能web开发 如何加载JS,JS应该放在什么位置?
May 14 Javascript
基于JQuery的动态删除Table表格的行和列的代码
May 12 Javascript
JQuery中的html()、text()、val()区别示例介绍
Sep 01 Javascript
JavaScript中对象介绍
Dec 31 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 Javascript
js解决软键盘遮挡输入框的问题分享
Dec 19 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
May 31 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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之数组学习
2011/05/29 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
详解Vue之父子组件传值
2019/04/01 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python中global用法实例分析
2015/04/30 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Python如何省略括号方法详解
2020/03/21 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
教育系毕业生中文求职信范文
2013/10/06 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
铁路安全反思材料
2014/12/24 职场文书
董存瑞观后感
2015/06/11 职场文书
培根随笔读书笔记
2015/07/01 职场文书
班级管理经验交流材料
2015/11/02 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL