JavaScript简单实现深度比对

需求

现在有一个需求,就是判断两个对象是否完全相同,那么你知道应该怎么去做嘛

代码展示

const a = {
    
    
    a: 12,
    b: 13,
    c: {
    
    
        a: 1,
        b: 2,
    }
}
const b = {
    
    
    b: 13,
    c: {
    
    
        a: 1,
        b: 2
    },
    a: 12,
}

// true 不一样 false一样
function isDiff(o1, o2) {
    
    
    return !(JSON.stringify(o1) === JSON.stringify(Object.assign(o1, o2)))
}

console.log(isDiff(a, b))

这个办法适用于99%的业务场景,唯一不适合的就是如果对象中有函数、Map、Date这样的数据,恐怕就会把一些不相同的误判成相同的了。

那么最完善的方案还是不断的递归比对,但是那样很浪费时间复杂度,所以上面这个办法还是可行的

猜你喜欢

转载自blog.csdn.net/chengqige/article/details/128168964
今日推荐