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 相关文章推荐
jQuery中height()方法用法实例
Dec 24 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
Aug 04 Javascript
JS实现双击屏幕滚动效果代码
Oct 28 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
关于vue.js发布后路径引用的问题解决
Aug 15 Javascript
微信小程序下拉刷新界面的实现
Sep 28 Javascript
使用Angular material主题定义自己的组件库的配色体系
Sep 04 Javascript
Layui点击图片弹框预览的实现方法
Sep 16 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
js实现百度登录窗口拖拽效果
Mar 19 Javascript
JavaScript 对象创建的3种方法
Nov 17 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伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
PHP实现百度人脸识别
2019/05/06 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
js操作select控件的几种方法
2010/06/02 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
vue debug 二种方法
2018/09/16 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
什么是数组名
2012/05/10 面试题
银行出纳岗位职责
2013/11/25 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
投资建议书模板
2014/05/12 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
七年级数学教学反思
2016/02/17 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
node快速搭建后台的实现步骤
2022/02/18 NodeJs
js作用域及作用域链工作引擎
2022/07/07 Javascript