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 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
jQuery select控制插件
Aug 17 Javascript
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
Jun 22 Javascript
JavaScript创建类/对象的几种方式概述及实例
May 06 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
canvas滤镜效果实现代码
Feb 06 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
对vue.js中this.$emit的深入理解
Feb 23 Javascript
vue cli2.0单页面title修改方法
Jun 07 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 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
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python实现DES加密解密方法实例详解
2015/06/30 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
Python3常用内置方法代码实例
2019/11/18 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
用Python进行websocket接口测试
2020/10/16 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
华为python面试题
2016/05/03 面试题
对祖国的寄语大全
2014/04/11 职场文书
李敖北大演讲稿
2014/05/24 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
考试作弊检讨书
2014/10/21 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
《开国大典》教学反思
2016/02/16 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS