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这样的数据,恐怕就会把一些不相同的误判成相同的了。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值