使用JavaScript怎么判断两个对象内容是否相等

使用JavaScript怎么判断两个对象内容是否相等?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站建设、通江网络推广、小程序设计、通江网络营销、通江企业策划、通江品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供通江建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

代码如下:



  
    
    
  
  
  

//isEqual:判断两个对象是否键值对应相等
function isEqual(a,b){
  //如果a和b本来就全等
  if(a===b){
    //判断是否为0和-0
    return a !== 0 || 1/a ===1/b;
  }
  //判断是否为null和undefined
  if(a==null||b==null){
    return a===b;
  }
  //接下来判断a和b的数据类型
  var classNameA=toString.call(a),
    classNameB=toString.call(b);
  //如果数据类型不相等,则返回false
  if(classNameA !== classNameB){
    return false;
  }
  //如果数据类型相等,再根据不同数据类型分别判断
  switch(classNameA){
    case '[object RegExp]':
    case '[object String]':
    //进行字符串转换比较
    return '' + a ==='' + b;
    case '[object Number]':
    //进行数字转换比较,判断是否为NaN
    if(+a !== +a){
      return +b !== +b;
    }
    //判断是否为0或-0
    return +a === 0?1/ +a === 1/b : +a === +b;
    case '[object Date]':
    case '[object Boolean]':
    return +a === +b;
  }
  //如果是对象类型
  if(classNameA == '[object Object]'){
    //获取a和b的属性长度
    var propsA = Object.getOwnPropertyNames(a),
      propsB = Object.getOwnPropertyNames(b);
    if(propsA.length != propsB.length){
      return false;
    }
    for(var i=0;i

运行效果图如下:

使用JavaScript怎么判断两个对象内容是否相等

关于使用JavaScript怎么判断两个对象内容是否相等问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


本文名称:使用JavaScript怎么判断两个对象内容是否相等
网页地址:http://ybzwz.com/article/ghgpjo.html