49 lines
		
	
	
		
			1014 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1014 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import baseLodash from './_baseLodash.js';
 | |
| import wrapperClone from './_wrapperClone.js';
 | |
| 
 | |
| /**
 | |
|  * 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;
 | |
| }
 | |
| 
 | |
| export default wrapperPlant;
 |