| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- var LazyWrapper = require('../internal/LazyWrapper'),
- LodashWrapper = require('../internal/LodashWrapper'),
- thru = require('./thru');
- /**
- * Reverses the wrapped array so the first element becomes the last, the
- * second element becomes the second to last, and so on.
- *
- * **Note:** This method mutates the wrapped array.
- *
- * @name reverse
- * @memberOf _
- * @category Chain
- * @returns {Object} Returns the new reversed `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__;
- var interceptor = function(value) {
- return value.reverse();
- };
- if (value instanceof LazyWrapper) {
- var wrapped = value;
- if (this.__actions__.length) {
- wrapped = new LazyWrapper(this);
- }
- wrapped = wrapped.reverse();
- wrapped.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });
- return new LodashWrapper(wrapped, this.__chain__);
- }
- return this.thru(interceptor);
- }
- module.exports = wrapperReverse;
|