diff options
Diffstat (limited to 'node_modules/lodash/sampleSize.js')
-rw-r--r-- | node_modules/lodash/sampleSize.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/lodash/sampleSize.js b/node_modules/lodash/sampleSize.js new file mode 100644 index 0000000..a303686 --- /dev/null +++ b/node_modules/lodash/sampleSize.js @@ -0,0 +1,37 @@ +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; |