温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-04-09 17:38:24 来源:亿速云 阅读:319 作者:Leah 栏目:web开发

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

代码如下:

<!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <title></title>   </head>   <body>   </body> <script type="text/javascript"> //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<propsA.length;i++){       var propName=propsA[i];       //如果对应属性对应值不相等,则返回false       if(a[propName] !== b[propName]){         return false;       }     }     return true;   }   //如果是数组类型   if(classNameA == '[object Array]'){     if(a.toString() == b.toString()){       return true;     }     return false;   } } //test var obj1={name:"liu",age:22}; var obj2={name:"liu",age:22}; var obj3={name:"liu",age:33}; var state1=isEqual(obj1,obj2); var state2=isEqual(obj1,obj3); console.log(state1);//true console.log(state2);//false var state3=isEqual(null,undefined); console.log(state3);//false var state4=isEqual(NaN,NaN); console.log(state4);//true var arr1=[1,2,3]; var arr2=[1,2,3]; var arr3=[1,23]; var state5=isEqual(arr1,arr2); console.log(state5);//true var state6=isEqual(arr1,arr3); console.log(state6);//false </script> </html>

运行效果图如下:

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI