JS判断两个数组或对象是否相同的方法示例


Posted in Javascript onFebruary 28, 2019

本文实例讲述了JS判断两个数组或对象是否相同的方法。分享给大家供大家参考,具体如下:

JS 判断两个数组是否相同

要判断2个数组是否相同,首先要把数组进行排序,然后转换成字符串进行比较。

JSON.stringify([1,2,3].sort()) === JSON.stringify([3,2,1].sort()); //true

或者

[1,2,3].sort().toString() === [3,2,1].sort().toString(); //true

经验证,上述方法对复杂数组结构不适用。

JS 判断两个对象是否相同

这是网上某大神封装对比对象是否相同的 function。

let cmp = ( x, y ) => {
// If both x and y are null or undefined and exactly the same
    if ( x === y ) {
      return true;
    }
// If they are not strictly equal, they both need to be Objects
    if ( ! ( x instanceof Object ) || ! ( y instanceof Object ) ) {
      return false;
    }
//They must have the exact same prototype chain,the closest we can do is
//test the constructor.
    if ( x.constructor !== y.constructor ) {
      return false;
    }
    for ( var p in x ) {
      //Inherited properties were tested using x.constructor === y.constructor
      if ( x.hasOwnProperty( p ) ) {
        // Allows comparing x[ p ] and y[ p ] when set to undefined
        if ( ! y.hasOwnProperty( p ) ) {
          return false;
        }
        // If they have the same strict value or identity then they are equal
        if ( x[ p ] === y[ p ] ) {
          continue;
        }
        // Numbers, Strings, Functions, Booleans must be strictly equal
        if ( typeof( x[ p ] ) !== "object" ) {
          return false;
        }
        // Objects and Arrays must be tested recursively
        if ( ! Object.equals( x[ p ], y[ p ] ) ) {
          return false;
        }
      }
    }
    for ( p in y ) {
      // allows x[ p ] to be set to undefined
      if ( y.hasOwnProperty( p ) && ! x.hasOwnProperty( p ) ) {
        return false;
      }
    }
    return true;
};

经检测,同样也不支持复杂数据结构的对象。

一般情况下用的话上述2种方法已经够用了,拿来作比较的一般都是简单的数据结构。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js弹出层永远居中实现思路及代码
Nov 29 Javascript
jquery ztree实现下拉树形框使用到了json数据
May 14 Javascript
jQuery 回调函数(callback)的使用和基础
Feb 26 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
PassWord输入框代码分享
Jun 07 Javascript
vue如何引用其他组件(css和js)
Apr 13 Javascript
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
Vue 组件参数校验与非props特性的方法
Feb 12 Javascript
推荐15个最好用的JavaScript代码压缩工具
Feb 13 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
May 12 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
Nest.js散列与加密实例详解
Feb 24 Javascript
jQuery.parseJSON()函数详解
Feb 28 #jQuery
js获取form表单中name属性的值
Feb 27 #Javascript
用VueJS写一个Chrome浏览器插件的实现方法
Feb 27 #Javascript
jQuery each和js forEach用法比较
Feb 27 #jQuery
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 #Javascript
Vue CLI 2.x搭建vue(目录最全分析)
Feb 27 #Javascript
JavaScript中filter的用法实例分析
Feb 27 #Javascript
You might like
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
Python连接Redis的基本配置方法
2018/09/13 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
Python根据成绩分析系统浅析
2019/02/11 Python
python set内置函数的具体使用
2019/07/02 Python
自定义django admin model表单提交的例子
2019/08/23 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
俞敏洪一分钟演讲稿
2014/08/26 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
浅析Python中的套接字编程
2021/06/22 Python