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脚本类
Aug 27 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
Oct 21 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
May 06 Javascript
javascript实现仿百度图片的瀑布流加载效果
Apr 20 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
详解VueJs前后端分离跨域问题
May 24 Javascript
vue深入解析之render function code详解
Jul 18 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
Vue.js组件使用props传递数据的方法
Oct 19 Javascript
Javascript之datagrid查询详解
Sep 15 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用户指南-cookies部分
2006/10/09 PHP
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
mysql时区问题
2008/03/26 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
社区十八大感言
2014/01/19 职场文书
合作与交流自我评价
2015/03/09 职场文书
父母教会我观后感
2015/06/17 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
pandas数值排序的实现实例
2021/07/25 Python
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers