react / wstein / node_modules / jest-cli / node_modules / istanbul / node_modules / js-yaml / node_modules / argparse / node_modules / lodash / object / merge.js
80742 viewsvar baseMerge = require('../internal/baseMerge'),1createAssigner = require('../internal/createAssigner');23/**4* Recursively merges own enumerable properties of the source object(s), that5* don't resolve to `undefined` into the destination object. Subsequent sources6* overwrite property assignments of previous sources. If `customizer` is7* provided it is invoked to produce the merged values of the destination and8* source properties. If `customizer` returns `undefined` merging is handled9* by the method instead. The `customizer` is bound to `thisArg` and invoked10* with five arguments: (objectValue, sourceValue, key, object, source).11*12* @static13* @memberOf _14* @category Object15* @param {Object} object The destination object.16* @param {...Object} [sources] The source objects.17* @param {Function} [customizer] The function to customize assigned values.18* @param {*} [thisArg] The `this` binding of `customizer`.19* @returns {Object} Returns `object`.20* @example21*22* var users = {23* 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]24* };25*26* var ages = {27* 'data': [{ 'age': 36 }, { 'age': 40 }]28* };29*30* _.merge(users, ages);31* // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }32*33* // using a customizer callback34* var object = {35* 'fruits': ['apple'],36* 'vegetables': ['beet']37* };38*39* var other = {40* 'fruits': ['banana'],41* 'vegetables': ['carrot']42* };43*44* _.merge(object, other, function(a, b) {45* if (_.isArray(a)) {46* return a.concat(b);47* }48* });49* // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }50*/51var merge = createAssigner(baseMerge);5253module.exports = merge;545556