aboutsummaryrefslogtreecommitdiff
path: root/node_modules/lodash/_baseSampleSize.js
blob: 5c90ec51816938fd7099fad7c96ab5d341ff94cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var baseClamp = require('./_baseClamp'),
    shuffleSelf = require('./_shuffleSelf'),
    values = require('./values');

/**
 * The base implementation of `_.sampleSize` without param guards.
 *
 * @private
 * @param {Array|Object} collection The collection to sample.
 * @param {number} n The number of elements to sample.
 * @returns {Array} Returns the random elements.
 */
function baseSampleSize(collection, n) {
  var array = values(collection);
  return shuffleSelf(array, baseClamp(n, 0, array.length));
}

module.exports = baseSampleSize;