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压缩工具 yuicompressor 使用教程
Mar 31 Javascript
JavaScript中“+”的陷阱深刻理解
Dec 04 Javascript
javascript函数以及基础写法100多条实用整理
Jan 13 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
Bootstrap 组件之按钮(二)
May 11 Javascript
AngularJS 实现JavaScript 动画效果详解
Sep 08 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
详解用node.js实现简单的反向代理
Jun 26 Javascript
javascript数组定义的几种方法
Oct 06 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
Aug 03 Javascript
vue 实现图片懒加载功能
Dec 31 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
PHP也可以?成Shell Script
2006/10/09 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
详谈python read readline readlines的区别
2017/09/22 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Python selenium自动化测试模型图解
2020/04/15 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
python实现邮件循环自动发件功能
2020/09/11 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
银行领导班子四风对照检查材料
2014/09/27 职场文书
学生违反校规检讨书
2014/10/28 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
创业计划书之网吧
2019/10/10 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Python超详细分步解析随机漫步
2022/03/17 Python