compareObj = (obj1, obj2) => {
// 是否是对象
if (typeof obj1 !== 'object' || typeof obj2 !== 'object') {
return false
}
//可以使用Object.keys()代替
const arr1 = Object.getOwnPropertyNames(obj1)
const arr2 = Object.getOwnPropertyNames(obj2)
// 对象属性个数是否相等
if (arr1.length !== arr2.length) return false
for (const item of arr1) {
// 键名是否相等
if (arr2.includes(item)) {
// 键值是否相等
// 判断键值是否是对象
if (typeof obj1[item] === 'object') {
if (!compareObj(obj1[item], obj2[item])) return false
} else if (obj1[item] !== obj2[item]) {
return false
}
} else {
return false
}
}
return true
}
如何判断两个对象是否相等(所有属性相等)
于 2022-09-21 11:51:49 首次发布