| var LazyWrapper = require('./_LazyWrapper'), |
| LodashWrapper = require('./_LodashWrapper'), |
| reverse = require('./reverse'), |
| thru = require('./thru'); |
| |
| /** |
| * This method is the wrapper version of `_.reverse`. |
| * |
| * **Note:** This method mutates the wrapped array. |
| * |
| * @name reverse |
| * @memberOf _ |
| * @since 0.1.0 |
| * @category Seq |
| * @returns {Object} Returns the new `lodash` wrapper instance. |
| * @example |
| * |
| * var array = [1, 2, 3]; |
| * |
| * _(array).reverse().value() |
| * // => [3, 2, 1] |
| * |
| * console.log(array); |
| * // => [3, 2, 1] |
| */ |
| function wrapperReverse() { |
| var value = this.__wrapped__; |
| if (value instanceof LazyWrapper) { |
| var wrapped = value; |
| if (this.__actions__.length) { |
| wrapped = new LazyWrapper(this); |
| } |
| wrapped = wrapped.reverse(); |
| wrapped.__actions__.push({ |
| 'func': thru, |
| 'args': [reverse], |
| 'thisArg': undefined |
| }); |
| return new LodashWrapper(wrapped, this.__chain__); |
| } |
| return this.thru(reverse); |
| } |
| |
| module.exports = wrapperReverse; |