_.mergeWith(object, sources, customizer)
该函数将一个或多个源对象的属性合并到目标对象中,并使用自定义合并函数进行属性值的合并。如果属性键相同,则自定义合并函数会决定最终的属性值。
参数
object
:目标对象,将源对象的属性合并到该对象中。sources
:一个或多个源对象,用于提取属性并合并到目标对象中。customizer
:自定义合并函数,用于决定属性值的合并方式。
返回值
返回合并后的目标对象。
示例
javascript
const object = {
a: 1,
b: {
c: 2,
},
};
const source = {
b: {
d: 3,
},
};
const result = _.mergeWith(object, source, (objValue, srcValue) => {
if (_.isArray(objValue)) {
return objValue.concat(srcValue);
}
});
console.log(result);
// 输出: { a: 1, b: { c: 2, d: 3 } }
在上述示例中,我们有一个目标对象 object
和一个源对象 source
。使用 _.mergeWith()
函数将源对象 source
的属性合并到目标对象 object
中,并使用自定义合并函数进行属性值的合并。在自定义合并函数中,我们判断如果属性值是数组,则使用 concat
方法将源数组与目标数组合并。最终,返回合并后的目标对象 result
。输出结果为 { a: 1, b: { c: 2, d: 3 } }
,源对象的属性值通过自定义合并函数进行了合并。