【问题标题】:merge the value of two objects increasing the value of a key if matched [Javascript]合并两个对象的值,如果匹配则增加键的值 [Javascript]
【发布时间】:2017-11-26 08:47:46
【问题描述】:

给定两个对象:

const obj1 = {
  1: 5,
  2: 4
};

const obj2 = {
  1: 10,
  2: 1,
  3: 1
};

如何将它们与Lodash Merge 合并以创建以下结果对象:

const newObj = {
  1: 15,
  2: 5,
  3: 1
};

你有什么尝试?没有,因为我不知道如何以这种方式使用合并,或者合并是否是正确的方式。

【问题讨论】:

  • 合并不是正确的方法,它没有组合属性,它只是使用其中之一。
  • @Barmar 你能建议一个正确的方法(附例子)吗?
  • 试试_.assignWith
  • @Barmar 我还是不明白如何使用它,你能提供一个可运行的例子吗?

标签: javascript merge lodash


【解决方案1】:

使用_.mergeWith() - 它有一个定制器,可让您定义属性的合并方式。

const obj1 = {
  1: 5,
  2: 4
};

const obj2 = {
  1: 10,
  2: 1,
  3: 1
};

const result = _.mergeWith({}, obj1, obj2, (o1, o2) => {
  if(_.isNumber(o1)) {
    return o1 + o2;
  }
});

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-13
    • 2017-02-11
    • 2016-07-08
    • 2018-02-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多