使用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怎么判断两个对象内容是否相等问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联网站建设公司行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:使用JavaScript怎么判断两个对象内容是否相等-创新互联
分享地址:https://www.cdcxhl.com/article0/iioio.html
成都网站建设公司_创新互联,为您提供品牌网站制作、外贸建站、网站收录、定制开发、建站公司、商城网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联