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 相关文章推荐
JavaScript 替换Html标签实现代码
Oct 14 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
jQuery.validate 常用方法及需要注意的问题
Mar 20 Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
Aug 13 Javascript
javascript基本类型详解
Nov 28 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
JavaScript中getUTCSeconds()方法的使用详解
Jun 11 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
原生JS京东轮播图代码
Mar 22 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
基于Zookeeper的使用详解
2013/05/02 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
JSX在render函数中的应用详解
2019/09/04 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python框架django基础指南
2016/09/08 Python
python re模块的高级用法详解
2018/06/06 Python
Python笔记之观察者模式
2019/11/20 Python
Python项目跨域问题解决方案
2020/06/22 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
元旦联欢会感言
2014/03/04 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
会计人员岗位职责
2014/03/19 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL