实现效果
const obj1 = {a: 10, b: {x: 100, y: 200}}
const obj2 = {a: 10, b: {x: 100, y: 200}}
isEqual(obj1, obj2) === true
实现代码
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(let key in obj1){
const res = isEqual(obj1[key], obj2[key])
if(!res){
return false
}
}
return true
}
const obj1 = {
a: 10,
b: {
x: 100,
y: 200
}
}
const obj2 = {
a: 10,
b: {
x: 100,
y: 200
}
}
console.log(isEqual(obj1, obj2))