JS中比较两个Object数组是否相等方法实例


Posted in Javascript onNovember 11, 2019

一、问题

在js中是不能直接用“==”或者“===”来计算两个数组是否相等的,那么就需要对数组的值进行比较;

二、次解决方案

对于比较两个数组次要的方法有如下几种,为什么说是次要解决方案呢?因为它不能真正称之为对两个数组的对比。

1. 把两个数组转化为字符串的形式比较,如下:

a. 当两个数组元素类型相同,顺序相同时,直接判断是否相等,结果不相等;转化为字符串后,结果相等;

var a=[1, 2, 3, 4];
var b = a.slice(); 
console.log(a);
console.log(b); console.log(a == b);
console.log(JSON.stringify(a) == JSON.stringify(b));

 

运行结果:

JS中比较两个Object数组是否相等方法实例

2.当两个数组元素类型不同,顺序相同时,用toString()转化为字符串,结果相等;用stringify转化为字符串,结果不相等; 

var a=[1, 2, 3, 4]; 
var b = ['1', 2, 3, 4]; 
console.log(a); 
console.log(b); console.log(a.toString() == b.toString());
console.log(JSON.stringify(a) == JSON.stringify(b));
 

运行结果如下:

JS中比较两个Object数组是否相等方法实例

3. 当两个数组不相同时,先排序,再转化为Json字符串比较,结果相等:

var a = [1, 2, 3, 4]; 
var b = [4, 2, 3, 1]; 
console.log(a.sort()); 
console.log(b.sort());
console.log(JSON.stringify(a.sort()) == JSON.stringify(b.sort()));

运行结果:

JS中比较两个Object数组是否相等方法实例

4.当数组包含Object时,先排序,再进行比较,结果相等:

var a=[{"x":"abc"}, 2, 3, 4]; 
var b = [4, 2, 3, {"x":"abc"}]; 
console.log(a.sort()); 
console.log(b.sort()); console.log(JSON.stringify(a.sort()) == JSON.stringify(b.sort()));

运行结果:

JS中比较两个Object数组是否相等方法实例

从以上可以看出:

1. 如果两个数组元素类型相同,顺序相同时,用stringify转化为字符串后进行比较;

2. 如果两个数组元素类型相同,顺序不相同时,排序后,用stringify转化为字符串再进行比较;

3.两个数组元素类型不同时,用stringify转化为字符串后进行比较,数组不相等;用toString()转化为字符串后进行比较,数组相等;

以上就是本次介绍的全部相关知识点,内容还需要待补充,后期小编会完善相关内容,跟多内容可以在下方的相关文章学习。

Javascript 相关文章推荐
利用JS重写Cognos右键菜单的实现代码
Apr 11 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
May 27 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
May 30 Javascript
javascript中获取class的简单实现
Jul 12 Javascript
如何利用模板将HTML从JavaScript中抽离
Oct 08 Javascript
Bootstrap如何激活导航状态
Mar 22 Javascript
javascript数组定义的几种方法
Oct 06 Javascript
详解微信小程序canvas圆角矩形的绘制的方法
Aug 22 Javascript
js Array.slice的8种不同用法示例
Jul 10 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
Sep 03 Javascript
jQuery编写QQ简易聊天框
Aug 27 jQuery
vue把输入框的内容添加到页面的实例讲解
Nov 11 #Javascript
vue与django集成打包的实现方法
Nov 11 #Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 #Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 #Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 #jQuery
javascript/jquery实现点击触发事件的方法分析
Nov 11 #jQuery
jquery ajax 请求小技巧实例分析
Nov 11 #jQuery
You might like
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
使用javascript插入样式
2016/03/14 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
canvas的神奇用法
2017/02/03 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
Python实现代码块儿折叠
2020/04/15 Python
python可以用哪些数据库
2020/06/22 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
应届毕业生求职简历自我评价
2015/03/02 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
python实现监听键盘
2021/04/26 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
把77A收信机改造成收音机
2022/04/05 无线电