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 相关文章推荐
基于jQuery UI CSS Framework开发Widget的经验
Aug 21 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
Aug 19 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
Feb 21 Javascript
详解vue-cli 脚手架 安装
Apr 16 Javascript
Vue 自定义指令实现一键 Copy功能
Sep 16 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 Javascript
Javascript数组及类数组相关原理详解
Oct 29 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 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
PHP模板引擎smarty详细介绍
2015/05/26 PHP
javascript multibox 全选
2009/03/22 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
python数据结构之二叉树的建立实例
2014/04/29 Python
Python实现栈的方法
2015/05/26 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
Python中几种导入模块的方式总结
2017/04/27 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python发送邮件脚本
2018/05/22 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
公司离职证明范本
2014/01/13 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
大学生个人学习总结
2015/02/15 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python