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 相关文章推荐
完整显示当前日期和时间的JS代码
Sep 17 Javascript
jquery 查找select ,并触发事件的实现代码
Mar 30 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
Aug 23 Javascript
jquery仅用6行代码实现滑动门效果
Sep 07 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 Javascript
深入理解js中this的用法
May 28 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
vue实现点击按钮“查看详情”弹窗展示详情列表操作
Sep 09 Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
PHP设计聊天室步步通
2006/10/09 PHP
php URL验证正则表达式
2011/07/19 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Python简单实现区域生长方式
2020/01/16 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
python中的错误如何查看
2020/07/08 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
某某同志考察材料
2014/05/28 职场文书
商业项目策划方案
2014/06/05 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js