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 相关文章推荐
关于使用 jBox 对话框的提交不能弹出问题解决方法
Nov 07 Javascript
js修改input的type属性问题探讨
Oct 12 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
BootStrap和jQuery相结合实现可编辑表格
Apr 21 Javascript
AngularJS使用指令增强标准表单元素功能
Jul 01 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
Feb 26 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 Javascript
vue实现倒计时获取验证码效果
Apr 17 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
Aug 07 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 多线程上下文中安全写文件实现代码
2009/12/28 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
php并发加锁示例
2016/10/17 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
javascript打印html内容功能的方法示例
2013/11/28 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
JS改变页面颜色源码分享
2018/02/24 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
解决python 输出是省略号的问题
2018/04/19 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
通信工程专业毕业生推荐信
2013/12/25 职场文书
大学四年个人自我小结
2014/03/05 职场文书
安全生产月标语
2014/10/07 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
基层工作经历证明
2015/06/19 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
Django基础CBV装饰器和中间件
2022/03/22 Python