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 相关文章推荐
js自动查找select下拉的菜单并选择(示例代码)
Feb 26 Javascript
js图片处理示例代码
May 12 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
node.js中的fs.lstat方法使用说明
Dec 16 Javascript
VUEJS实战之修复错误并且美化时间(2)
Jun 13 Javascript
fullpage.js最后一屏滚动方式
Feb 06 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
May 28 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
解决vuex改变了state的值,但是页面没有更新的问题
Nov 12 Javascript
MutationObserver在页面水印实现起到的作用详解
Jul 07 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
cakephp常见知识点汇总
2017/02/24 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
详解javascript遍历方式
2015/11/11 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python如何生成树形图案
2018/01/03 Python
python实现员工管理系统
2018/01/11 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
留学推荐信中文范文三篇
2014/01/25 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
建房协议书
2014/04/11 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
综合实践活动报告
2015/02/05 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
寒假致家长的一封信
2015/10/10 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
改造DE1103三步曲
2022/04/07 无线电
python实现简单的三子棋游戏
2022/04/28 Python