| 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; |