如何深入比较两个javascript对象并返回所有差异,包括新添加的数组和相同的原始格式



我正在比较两个javascript对象。如何使用优化的代码列出所有差异?

我也尝试了一些插件deep-diff和lodash。Lodash 向我返回了同一行的差异,但没有返回任何其他添加的字段。

const a = {
"id":1,
"name":xyz
}
const b = {
"id":1,
"name":xyz abc,
"address":pqr
}

我希望输出:{"name":xyz abc","address":pqr}

    Object.keys(a).forEach(x => { if (Object.keys(b).every(y => b[y] !== a[x])) { diff[x] = a[x] } })
    Object.keys(b).forEach(x => { if (Object.keys(a).every(y => a[y] !== b[x])) { diff[x] = b[x] } })
    console.log(diff)

下面是您想要使用 lodash 函数的示例。

https://gist.github.com/Yimiprod/7ee176597fef230d1451

相关内容

最新更新