sampleSize.js (1068B)
1 var arraySampleSize = require('./_arraySampleSize'), 2 baseSampleSize = require('./_baseSampleSize'), 3 isArray = require('./isArray'), 4 isIterateeCall = require('./_isIterateeCall'), 5 toInteger = require('./toInteger'); 6 7 /** 8 * Gets `n` random elements at unique keys from `collection` up to the 9 * size of `collection`. 10 * 11 * @static 12 * @memberOf _ 13 * @since 4.0.0 14 * @category Collection 15 * @param {Array|Object} collection The collection to sample. 16 * @param {number} [n=1] The number of elements to sample. 17 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 18 * @returns {Array} Returns the random elements. 19 * @example 20 * 21 * _.sampleSize([1, 2, 3], 2); 22 * // => [3, 1] 23 * 24 * _.sampleSize([1, 2, 3], 4); 25 * // => [2, 3, 1] 26 */ 27 function sampleSize(collection, n, guard) { 28 if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { 29 n = 1; 30 } else { 31 n = toInteger(n); 32 } 33 var func = isArray(collection) ? arraySampleSize : baseSampleSize; 34 return func(collection, n); 35 } 36 37 module.exports = sampleSize;