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 loading加载效果实现代码
Nov 24 Javascript
JavaScript Array Flatten 与递归使用介绍
Oct 30 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
Dec 26 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
小程序实现左滑删除功能
Oct 30 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
express express-session的使用小结
Dec 12 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 Javascript
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
第十三节 对象串行化 [13]
2006/10/09 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
node 版本切换的实现
2020/02/02 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python实现从订阅源下载图片的方法
2015/03/11 Python
Django权限机制实现代码详解
2018/02/05 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
python为什么要安装到c盘
2020/07/20 Python
Python如何进行时间处理
2020/08/06 Python
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
生日寿宴答谢词
2014/01/19 职场文书
邀请函的格式
2015/01/30 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
单位车辆管理制度
2015/08/05 职场文书
初中美术教学反思
2016/02/17 职场文书
导游词之无锡唐城
2019/12/12 职场文书
python字典的元素访问实例详解
2021/07/21 Python