1.首先判断传入两个参数传入是否为object或者不为空,如果是普通类型则直接比较返回
2.在判断两个Obj的长度是否相等,不相等则直接返回false
3.在通过递归调用,处理参数深层次问题。
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
const obj1Keys = Object.keys(obj1)
const obj2Keys = Object.keys(obj2)
if (obj1Keys.length !== obj2Keys.length) return false
for (const key in obj1) {
const res = isEqual(obj1[key],obj2[key])
if(!res){
return false
}
}
return true
}