1var LazyWrapper = require('./_LazyWrapper'), 2 LodashWrapper = require('./_LodashWrapper'), 3 reverse = require('./reverse'), 4 thru = require('./thru'); 5 6/** 7 * This method is the wrapper version of `_.reverse`. 8 * 9 * **Note:** This method mutates the wrapped array. 10 * 11 * @name reverse 12 * @memberOf _ 13 * @since 0.1.0 14 * @category Seq 15 * @returns {Object} Returns the new `lodash` wrapper instance. 16 * @example 17 * 18 * var array = [1, 2, 3]; 19 * 20 * _(array).reverse().value() 21 * // => [3, 2, 1] 22 * 23 * console.log(array); 24 * // => [3, 2, 1] 25 */ 26function wrapperReverse() { 27 var value = this.__wrapped__; 28 if (value instanceof LazyWrapper) { 29 var wrapped = value; 30 if (this.__actions__.length) { 31 wrapped = new LazyWrapper(this); 32 } 33 wrapped = wrapped.reverse(); 34 wrapped.__actions__.push({ 35 'func': thru, 36 'args': [reverse], 37 'thisArg': undefined 38 }); 39 return new LodashWrapper(wrapped, this.__chain__); 40 } 41 return this.thru(reverse); 42} 43 44module.exports = wrapperReverse; 45