深度比较判断两个对象值相等

代码


function isObject(data) {
    return data && typeof data === 'object'
}

function isEqual(obj1,obj2) {
    if(!isObject(obj1) && !isObject(obj2)) {
        return obj1 === obj2
    }
    const len1 = Object.keys(obj1).length
    const len2 = Object.keys(obj2).length
    if(len1!==len2) {
        return false
    }
    for(let key in obj1) {
        if(!isEqual(obj1[key],obj2[key])) {
            return false
        }
    }
    return true
}

var obj1 = {
    a:100,
    b: {
        x:100,
        y:200
    }
}

var obj2 = {
    a:100,
    b: {
        x:100,
        y:200
    }
}

isEqual(obj1,obj2)
复制代码

猜你喜欢

转载自juejin.im/post/7110792053990096903