javascript - 比较两个对象并仅获取更新

标签 javascript diff lodash

我正在尝试比较两个对象并仅获取更新。

let alpha = {
 brown: true,
 green: true,
 blue: true
}

let beta = {
 green: false,
}

doSomething(alpha, beta) // => {green: false}

let alpha = {
 brown: true,
 green: true,
 blue: true
}

let beta = {
 green: true,
}

doSomething(alpha, beta) // => false

到目前为止,这就是我所得到的。

let alphaSameKeys = pick(alpha, Object.keys(beta))
console.log(alpha) // => {green: true}

如何使用 lodash 完成此操作?

最佳答案

简单的浅差异。

export function diffObject (source, incoming) {
  let res = pickBy(incoming, (value, key) => {
    if (value !== source[key]) return true
    if (!source[key]) return true
    return false
  })
  if (!size(res)) return false
  return res
}

关于javascript - 比较两个对象并仅获取更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39838756/

相关文章:

javascript - Lodash基于外部数组对集合进行排序

Javascript/lodash 如何删除空数组

javascript - 我正在使用 (unlink($_GET ['videofile' ])) 并且它在开发服务器上工作正常,但在产品中无法工作

javascript - Facebook Javascript API 调用返回错误,需要 appsecret_proof 参数 - 但这是客户端

javascript - 查找未选中复选框的元素并删除其祖先

git - merge 2个补丁文件

python - 单行差异

javascript - jqPlot 饼图无法正确渲染

git - 验证 Git 提交仅移动行

javascript - 将数组数组中的唯一值合并到数组中