比较对象

const obj1 = {
    x: 1,
    y: '2',
    z: false,
    m: [1, 2, 3],
    n: {
        x: 1,
        y: '2',
        z: false,
    },
    o: [{
        x: 1,
        y: '',
        z: true
    }]
}

const obj2 = {
    x: 1,
    y: '2',
    z: false,
    m: 0,
    n: {
        x: 1,
        y: '2',
        z: false,
    },
    o: [{
        x: 1,
        y: '',
        z: false
    }]
}

const isSameObject = (target = obj1, source = obj2) => {
    const keys = Object.keys(target)
    for (let i = 0; i < keys.length; i++) {
        const key = keys[i]
        if (typeof target[key] === 'object' && typeof source[key] === 'object') {
            return isSameObject(target[key], source[key]
        } else {
            if (!Object.is(target[key], source[key])) return false
        }
    }
    return true
}

  

posted @ 2023-02-13 22:15  671_MrSix  阅读(12)  评论(0编辑  收藏  举报