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 相关文章推荐
收集的网上用的ajax之chat.js文件
Apr 08 Javascript
js 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
jquery 操作DOM案例代码分享
Apr 05 Javascript
js工具方法弹出蒙版
May 08 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
JavaScript实现定时隐藏与显示图片的方法
Aug 06 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
Node.js重新刷新session过期时间的方法
Feb 04 Javascript
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
详解Node.js模板引擎Jade入门
Jan 19 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
Nov 29 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
PHP函数utf8转gb2312编码
2006/12/21 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php获取文件大小的方法
2014/02/26 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
php计算一个文件大小的方法
2015/03/30 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
10个示例带你掌握python中的元组
2020/11/23 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
瑞典度假品牌:OAS
2019/05/28 全球购物
优秀管理者获奖感言
2014/02/17 职场文书
维稳工作承诺书
2015/01/20 职场文书
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers