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 相关文章推荐
javascript 写的一个简单的timer
Jul 30 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
跟我学习javascript的定时器
Nov 19 Javascript
jQuery页面刷新(局部、全部)问题分析
Jan 09 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Jun 02 Javascript
jQuery使用方法
Feb 04 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
vue项目部署上线遇到的问题及解决方法
Jun 10 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 Javascript
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
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中进行身份认证
2006/10/09 PHP
PHP程序员编程注意事项
2008/04/10 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
理解javascript异步编程
2016/01/27 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
Python3内置模块random随机方法小结
2019/07/13 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
金鑫耀Java笔试题
2014/09/06 面试题
报到证丢失证明
2014/01/11 职场文书
优秀团队获奖感言
2014/02/19 职场文书
医药营销个人求职信
2014/04/12 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
python opencv旋转图片的使用方法
2021/06/04 Python