You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					41 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					41 lines
				
				1.0 KiB
			| 
											3 years ago
										 | var assignValue = require('./_assignValue'), | ||
|  |     baseAssignValue = require('./_baseAssignValue'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Copies properties of `source` to `object`. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Object} source The object to copy properties from. | ||
|  |  * @param {Array} props The property identifiers to copy. | ||
|  |  * @param {Object} [object={}] The object to copy properties to. | ||
|  |  * @param {Function} [customizer] The function to customize copied values. | ||
|  |  * @returns {Object} Returns `object`. | ||
|  |  */ | ||
|  | function copyObject(source, props, object, customizer) { | ||
|  |   var isNew = !object; | ||
|  |   object || (object = {}); | ||
|  | 
 | ||
|  |   var index = -1, | ||
|  |       length = props.length; | ||
|  | 
 | ||
|  |   while (++index < length) { | ||
|  |     var key = props[index]; | ||
|  | 
 | ||
|  |     var newValue = customizer | ||
|  |       ? customizer(object[key], source[key], key, object, source) | ||
|  |       : undefined; | ||
|  | 
 | ||
|  |     if (newValue === undefined) { | ||
|  |       newValue = source[key]; | ||
|  |     } | ||
|  |     if (isNew) { | ||
|  |       baseAssignValue(object, key, newValue); | ||
|  |     } else { | ||
|  |       assignValue(object, key, newValue); | ||
|  |     } | ||
|  |   } | ||
|  |   return object; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = copyObject; |