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 23 Javascript
JS实现动态移动层及拖动浮层关闭的方法
Apr 30 Javascript
基于jquery实现在线选座订座之影院篇
Aug 24 Javascript
jQuery Mobile动态刷新页面样式的实现方法
May 28 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
Jun 07 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
Dec 28 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
Sep 13 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
JavaScript正则表达式验证登录实例
Mar 18 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
ext实现完整的登录代码
2008/08/08 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
Vue render深入开发讲解
2018/04/13 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
Python解决八皇后问题示例
2018/04/22 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
python中count函数知识点浅析
2020/12/17 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
委托书范本
2014/04/02 职场文书
规范化管理年活动总结
2014/08/29 职场文书
大学生个人简历自我评价
2015/03/11 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang