Spaces:
Runtime error
Runtime error
var arraySampleSize = require('./_arraySampleSize'), | |
baseSampleSize = require('./_baseSampleSize'), | |
isArray = require('./isArray'), | |
isIterateeCall = require('./_isIterateeCall'), | |
toInteger = require('./toInteger'); | |
/** | |
* Gets `n` random elements at unique keys from `collection` up to the | |
* size of `collection`. | |
* | |
* @static | |
* @memberOf _ | |
* @since 4.0.0 | |
* @category Collection | |
* @param {Array|Object} collection The collection to sample. | |
* @param {number} [n=1] The number of elements to sample. | |
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. | |
* @returns {Array} Returns the random elements. | |
* @example | |
* | |
* _.sampleSize([1, 2, 3], 2); | |
* // => [3, 1] | |
* | |
* _.sampleSize([1, 2, 3], 4); | |
* // => [2, 3, 1] | |
*/ | |
function sampleSize(collection, n, guard) { | |
if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { | |
n = 1; | |
} else { | |
n = toInteger(n); | |
} | |
var func = isArray(collection) ? arraySampleSize : baseSampleSize; | |
return func(collection, n); | |
} | |
module.exports = sampleSize; | |