本篇文章给大家带来的内容是关于JavaScript中比较两个对象是否相等的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
这是我在一次面试中,被面试官所提问的一道题
在这次面试题中
相等:指的是对象的属性个数值相等
有这样两个obj
let obj1 = { name:'李德华', age:18, price:NaN } let obj2 = { name:'张德华', age:18, price:NaN }
我能想到的一种方案
function compare(obj1,obj2){ if(Object.keys(obj1).length != Object.keys(obj2).length){ return false }else{ for(key in obj1){ if(obj2.hasOwnProperty(key)){ if( !Object.is(obj1[key],obj2[key])){ return false; } }else{ return false } } return true } }
由于obj没有length,我只能通过Object.keys()转化成数组
进入第二步,对象中的属性在另一个obj中是否存在。此处使用了Object.hasOwnProperty() 仅对该对象中的属性进行对比(避免obj继承了父级的属性)
立即学习“Java免费学习笔记(深入)”;
承载第二步的基础对属性值进行比对。ES6中Object.is()来避免出现NaN不等于自身的问题
或者使用 Underscore.js中的_.isEqual
以上就是JavaScript中比较两个对象是否相等的方法的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号