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+CSS控制打印格式示例介绍
Jan 07 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 Javascript
js实现div在页面拖动效果
May 04 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
angularjs实现的前端分页控件示例
Feb 10 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
小程序开发基础之view视图容器
Aug 21 Javascript
微信小程序配置服务器提示验证token失败的解决方法
Apr 03 Javascript
vue组件库的在线主题编辑器的实现思路
Apr 03 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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获取mysql版本的几种方法小结
2008/03/25 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
webpack5 联邦模块介绍详解
2020/07/08 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
python基础教程之循环介绍
2014/08/29 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
python实现简单购物商城
2016/05/21 Python
python计算auc指标实例
2017/07/13 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
python与idea的集成的实现
2020/11/20 Python
思想品德自我鉴定
2013/10/12 职场文书
毕业生应聘求职信
2014/07/10 职场文书
2014年计生工作总结
2014/11/21 职场文书
廉政承诺书2015
2015/04/28 职场文书
庆七一晚会主持词
2015/06/30 职场文书
2015初中团委工作总结
2015/07/28 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL