如何在javascript(lodash)中替换对象数组中的对象

我有以下对象数组:

var arr = [
  {
    id    : "a1",
    guid  : "sdfsfd",
    ...
    value : "abc",
    status: false
  },
  {
    id    : "a2",
    guid  : "sdfsfd",
    ...
    value : "def",
    status: true
  },
  ...
]

我有这个对象:

var obj = {
  id      : "a1",
  guid    : "sdfsfd",
  ...
  value   : "xyz",
  status  :  true
}

我需要用“id”相同的对象替换数组中的对象.因此得到的数组将是:

var arr = [
  {
    id    : "a1",
    guid  : "sdfsfd",
    ...
    value : "xyz",
    status: true
  },
  {
    id    : "a2",
    guid  : "sdfsfd",
    ...
    value : "def",
    status: true
  },
  ...
]

另外,如果具有该id的对象不存在,我需要将该对象添加到数组中.

如何使用最小的lodash代码实现这一目标?
寻找类似的东西

arr = _.merge_by_key(arr,obj,"id");
最佳答案
你可以用_.unionBy来做

var res = _.unionBy([obj], arr, 'id');

但请在this comment查看备注

转载注明原文:如何在javascript(lodash)中替换对象数组中的对象 - 代码日志