JS判断两个对象是否相等
程序员文章站
2022-04-09 20:08:11
...
// Object.keys()是ES5中方法,用来获取对象自身可枚举的属性键;
// 原型中属性和设置了不可枚举的属性,都获取不到
// 若有枚举设置请使用Object.getOwnPropertyNames()
isObjectValueEqual(aObj, bObj) {
const aProps = Object.keys(aObj)
const bProps = Object.keys(bObj)
if (aProps.length != bProps.length) {
return false
}
for(const i of bProps){
const propA = aObj[i]
const propB = bObj[i]
if ((typeof (propA) === 'object')) {
if (this.isObjectValueEqual(propA, propB)) {
// return true 这里不能return,后面的对象还没判断
} else {
return false
}
} else if ( propA != propB) {
return false
}
}
return true
},