话不多说直接上代码:
function isObject(obj){
// 是否是对象判断
return typeof obj === 'object'
}
function isEqual(obj1, obj2){
if(!isObject(obj1) || !isObject(obj2)){
// 首先进行是否是对象的判断
return obj1 === obj2
}
if(obj2 === obj1){
// 如果传入的两个是相同的两个对象。直接进行判断,就不用进行递归判断
return true
}
if (Object.keys(obj1).length !== Object.keys(obj20.length)){
// 对key的长度进行判断
return false
}
for (let key in obj1){
// 进行键值的递归判断
if(!isEqual(obj1[key], obj2[key])){
return false
}
}
return true
}