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 相关文章推荐
div模拟滚动条效果示例代码
Oct 16 Javascript
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
js中的内部属性与delete操作符介绍
Aug 10 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
jquery图片滚动放大代码分享(2)
Aug 28 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
Jun 12 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
jQuery表单插件ajaxForm实例详解
Jan 17 Javascript
微信小程序点击控件修改样式实例详解
Jul 07 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
Aug 19 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
Feb 10 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 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
改变Apache端口等配置修改方法
2008/06/05 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
jQuery 动画基础教程
2008/12/25 Javascript
Prototype Hash对象 学习
2009/07/19 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Vue如何实现验证码输入交互
2020/12/07 Vue.js
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
python web框架学习笔记
2016/05/03 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Python内存管理实例分析
2019/07/10 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
情况说明书格式范文
2014/05/06 职场文书
软件售后服务承诺书
2014/05/21 职场文书
2014年消防工作总结
2014/11/21 职场文书
员工辞退通知书
2015/04/17 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android