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.
		
		
		
		
		
			
		
			
				
					49 lines
				
				1016 B
			
		
		
			
		
	
	
					49 lines
				
				1016 B
			| 
											3 years ago
										 | var baseLodash = require('./_baseLodash'), | ||
|  |     wrapperClone = require('./_wrapperClone'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a clone of the chain sequence planting `value` as the wrapped value. | ||
|  |  * | ||
|  |  * @name plant | ||
|  |  * @memberOf _ | ||
|  |  * @since 3.2.0 | ||
|  |  * @category Seq | ||
|  |  * @param {*} value The value to plant. | ||
|  |  * @returns {Object} Returns the new `lodash` wrapper instance. | ||
|  |  * @example | ||
|  |  * | ||
|  |  * function square(n) { | ||
|  |  *   return n * n; | ||
|  |  * } | ||
|  |  * | ||
|  |  * var wrapped = _([1, 2]).map(square); | ||
|  |  * var other = wrapped.plant([3, 4]); | ||
|  |  * | ||
|  |  * other.value(); | ||
|  |  * // => [9, 16]
 | ||
|  |  * | ||
|  |  * wrapped.value(); | ||
|  |  * // => [1, 4]
 | ||
|  |  */ | ||
|  | function wrapperPlant(value) { | ||
|  |   var result, | ||
|  |       parent = this; | ||
|  | 
 | ||
|  |   while (parent instanceof baseLodash) { | ||
|  |     var clone = wrapperClone(parent); | ||
|  |     clone.__index__ = 0; | ||
|  |     clone.__values__ = undefined; | ||
|  |     if (result) { | ||
|  |       previous.__wrapped__ = clone; | ||
|  |     } else { | ||
|  |       result = clone; | ||
|  |     } | ||
|  |     var previous = clone; | ||
|  |     parent = parent.__wrapped__; | ||
|  |   } | ||
|  |   previous.__wrapped__ = value; | ||
|  |   return result; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = wrapperPlant; |