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 方法实现返回多个数据的代码
Apr 30 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
Feb 28 Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
详解在AngularJS的controller外部直接获取$scope
Jun 02 Javascript
微信小程序实现点击返回顶层的方法
Jul 12 Javascript
Vue 中对图片地址进行拼接的方法
Sep 03 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
Oct 10 Javascript
vue中v-for循环给标签属性赋值的方法
Oct 18 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 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
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python中的作用域规则详解
2015/01/30 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Python变量和字符串详解
2017/04/29 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
django文档学习之applications使用详解
2018/01/29 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
学子宴答谢词
2014/01/25 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
环保建议书400字
2014/05/14 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
政协常委会议主持词
2015/07/03 职场文书
护理工作心得体会
2016/01/22 职场文书
python_tkinter事件类型详情
2022/03/20 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers