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 相关文章推荐
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
Nov 20 Javascript
Bootstrap基本布局实现方法详解
Nov 25 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
javascript深拷贝、浅拷贝和循环引用深入理解
May 27 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
vue使用codemirror的两种用法
Aug 27 Javascript
从零搭一个自用的前端脚手架的方法步骤
Sep 23 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php网站地图生成类示例
2014/01/13 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP实现的策略模式示例
2019/03/20 PHP
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
详解React中setState回调函数
2018/06/14 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python安装与使用redis的方法
2016/04/19 Python
Python分析学校四六级过关情况
2017/11/22 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
SQL中where和having的区别
2012/06/17 面试题
J2EE系统只能是基于web
2015/09/08 面试题
大专毕业生自我鉴定
2013/11/21 职场文书
差生评语大全
2014/05/04 职场文书
三八活动策划方案
2014/08/17 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
幼师小班个人总结
2015/02/12 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书