function isObject(obj){
return typeof obj === 'object' && obj !== null // 判断是否为数组或对象
}
function isEqual(obj1,obj2){
if(!isObject(obj1) || !isObject(obj2)){
return obj1 === obj2 // 不是数组或对象,直接比较
}
if(obj1 === obj2){
return true // 全等直接返回true
}
const obj1keys = Object.keys(obj1) //获取key
const obj2keys = Object.keys(obj2)
if(obj1keys.length != obj2keys.length){
return false //key的长度不等,直接返回false
}
for(let key in obj1){
const res = isEqual(obj1[key],obj2[key]) //递归比较
if(!res){
return false
}
}
return true
}
手写深度比较isEqual
最新推荐文章于 2024-03-13 20:15:31 发布