time-to-botec

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

take.js (851B)


      1 var baseSlice = require('./_baseSlice'),
      2     toInteger = require('./toInteger');
      3 
      4 /**
      5  * Creates a slice of `array` with `n` elements taken from the beginning.
      6  *
      7  * @static
      8  * @memberOf _
      9  * @since 0.1.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  * _.take([1, 2, 3]);
     18  * // => [1]
     19  *
     20  * _.take([1, 2, 3], 2);
     21  * // => [1, 2]
     22  *
     23  * _.take([1, 2, 3], 5);
     24  * // => [1, 2, 3]
     25  *
     26  * _.take([1, 2, 3], 0);
     27  * // => []
     28  */
     29 function take(array, n, guard) {
     30   if (!(array && array.length)) {
     31     return [];
     32   }
     33   n = (guard || n === undefined) ? 1 : toInteger(n);
     34   return baseSlice(array, 0, n < 0 ? 0 : n);
     35 }
     36 
     37 module.exports = take;