是否有一个库函数在连接它找到的任何数组时合并对象?

时间:2017-09-13 02:51:16

标签: javascript

我正在处理一个API,该API在几个不同的更新消息中返回一个复杂的对象。我发现JQuery的extend(true,objA,objB)函数在将更新合并在一起方面做得很好,但有一个例外:当属性是数组时,它会替换数组而不是连接。

所以我有这样的对象:

{thing:{stuff:{whatsit:{foo:[1,2,3]}}}}}
{thing:{stuff:{whatsit:{foo:[3,4,5,6]}}}}}

在合并对象时是否存在将提供此结果的现有NPM包或其他库:

{thing:{stuff:{whatsit:{foo:[1,2,3,3,4,5,6]}}}}}

1 个答案:

答案 0 :(得分:1)

lodash是个不错的选择。您可以为您的案例使用_.mergeWith函数。 来自lodash api指南的例子

function customizer(objValue, srcValue) {
  if (_.isArray(objValue)) {
    return objValue.concat(srcValue);
  }
}
 
var object = { 'a': [1], 'b': [2] };
var other = { 'a': [3], 'b': [4] };
 
_.mergeWith(object, other, customizer);
// => { 'a': [1, 3], 'b': [2, 4] }