time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

takeRight.js (930B)


      1 var baseSlice = require('./_baseSlice'),
      2     toInteger = require('./toInteger');
      3 
      4 /**
      5  * Creates a slice of `array` with `n` elements taken from the end.
      6  *
      7  * @static
      8  * @memberOf _
      9  * @since 3.0.0
     10  * @category Array
     11  * @param {Array} array The array to query.
     12  * @param {number} [n=1] The number of elements to take.
     13  * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
     14  * @returns {Array} Returns the slice of `array`.
     15  * @example
     16  *
     17  * _.takeRight([1, 2, 3]);
     18  * // => [3]
     19  *
     20  * _.takeRight([1, 2, 3], 2);
     21  * // => [2, 3]
     22  *
     23  * _.takeRight([1, 2, 3], 5);
     24  * // => [1, 2, 3]
     25  *
     26  * _.takeRight([1, 2, 3], 0);
     27  * // => []
     28  */
     29 function takeRight(array, n, guard) {
     30   var length = array == null ? 0 : array.length;
     31   if (!length) {
     32     return [];
     33   }
     34   n = (guard || n === undefined) ? 1 : toInteger(n);
     35   n = length - n;
     36   return baseSlice(array, n < 0 ? 0 : n, length);
     37 }
     38 
     39 module.exports = takeRight;