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 相关文章推荐
用Juery网页选项卡实现代码
Jun 13 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
jquery批量控制form禁用的代码
Aug 06 Javascript
js中string转int把String类型转化成int类型
Aug 13 Javascript
IE6兼容透明背景图片及解决方案
Aug 19 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
Jun 21 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
Oct 20 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
详解在Node.js中发起HTTP请求的5种方法
Jan 10 Javascript
JavaScript find()方法及返回数据实例
Apr 30 Javascript
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
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作的文本留言本的例子(四)
2006/10/09 PHP
组合算法的PHP解答方法
2012/02/04 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
php链表用法实例分析
2015/07/09 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
javascript void(0)的妙用
2009/10/21 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python多任务及返回值的处理方法
2019/01/22 Python
pow在python中的含义及用法
2019/07/11 Python
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
学生会竞选演讲稿学习部
2014/08/25 职场文书
大学生创业事迹材料
2014/12/30 职场文书
求职简历自我评价范文
2015/03/10 职场文书
2015年质检工作总结
2015/05/04 职场文书
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技