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

标签 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)

关于javascript - 如何深入比较两个 javascript 对象并返回所有差异,包括新添加的数组和相同的原始格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55611008/

相关文章:

javascript - 为什么 "\n"在 Javascript 中是一个数字 "NaN"

javascript - Angular Material md-chips 无法正确刷新

Javascript - 带有 PDF.js 的 pdf 总页数?

javascript - 加权对象值并确定获胜者

javascript - leaflet geosearch - 从传单 map 容器外部搜索位置

javascript - 如何在php-moodle中删除之前添加确认消息

javascript - Chartjs 工具提示 anchor 在条形图上的位置

javascript - 使用 Java/Scala 压缩 CSS/Javascript

javascript - 使用Javascript将`Div.backgroundColor`更改为`Element.backgroundColor`

javascript - 如何获取在执行 javascript 导入时可用的所有导出函数的名称?