Lodash - mergeWith 方法



语法

_.mergeWith(object, sources, customizer)

此方法类似于 _.merge,不同之处在于它接受 customizer, 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.htm
广告