Lodash - mergeWith 方法

语法

_.mergeWith(object, sources, customizer)

此方法与 _.merge 类似,不同之处在于它接受 customizer,调用此方法可生成目标和源属性的合并值。如果 customizer 返回未定义,则合并由该方法处理。customizer 使用六个参数调用:(objValue、srcValue、key、object、source、stack)。

参数

  • object (Object) − 目标对象。

  • sources (...Object) − 源对象。

  • customizer (Function) −自定义指定值的函数。

输出

  • (Object) − 返回对象。

示例

var _ = require('lodash');
var object = {
   'a': [{ 'b': 2 }, { 'd': 4 }]
}; 
var other = {
   'a': [{ 'c': 3 }, { 'e': 5 }]
};
function customizer(objValue, srcValue) {
   if (_.isArray(objValue)) {
     return objValue.concat(srcValue);
   }
}

console.log(_.mergeWith(object, other, customizer));

将上述程序保存在tester.js中。运行以下命令执行该程序。

命令

\>node tester.js

输出

{ a: [ { b: 2 }, { d: 4 }, { c: 3 }, { e: 5 } ] }

lodash_object.html