Files
lodash/merge.js
John-David Dalton 91d3468c81 Bump to v4.4.0.
2016-02-15 23:05:17 -08:00

38 lines
1.2 KiB
JavaScript

var baseMerge = require('./_baseMerge'),
createAssigner = require('./_createAssigner');
/**
* Recursively merges own and inherited enumerable properties of source objects
* into the destination object. Source properties that resolve to `undefined`
* are skipped if a destination value exists. Array and plain object properties
* are merged recursively. Other objects and value types are overridden by
* assignment. Source objects are applied from left to right. Subsequent
* sources overwrite property assignments of previous sources.
*
* **Note:** This method mutates `object`.
*
* @static
* @memberOf _
* @category Object
* @param {Object} object The destination object.
* @param {...Object} [sources] The source objects.
* @returns {Object} Returns `object`.
* @example
*
* var users = {
* 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
* };
*
* var ages = {
* 'data': [{ 'age': 36 }, { 'age': 40 }]
* };
*
* _.merge(users, ages);
* // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
*/
var merge = createAssigner(function(object, source, srcIndex) {
baseMerge(object, source, srcIndex);
});
module.exports = merge;