mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-04 08:57:49 +00:00
Bump to v4.16.0.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
var baseClamp = require('./_baseClamp'),
|
||||
baseRandom = require('./_baseRandom'),
|
||||
var arraySampleSize = require('./_arraySampleSize'),
|
||||
isArrayLike = require('./isArrayLike'),
|
||||
isIterateeCall = require('./_isIterateeCall'),
|
||||
toArray = require('./toArray'),
|
||||
toInteger = require('./toInteger');
|
||||
toInteger = require('./toInteger'),
|
||||
values = require('./values');
|
||||
|
||||
/**
|
||||
* Gets `n` random elements at unique keys from `collection` up to the
|
||||
@@ -25,25 +25,12 @@ var baseClamp = require('./_baseClamp'),
|
||||
* // => [2, 3, 1]
|
||||
*/
|
||||
function sampleSize(collection, n, guard) {
|
||||
var index = -1,
|
||||
result = toArray(collection),
|
||||
length = result.length,
|
||||
lastIndex = length - 1;
|
||||
|
||||
if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {
|
||||
n = 1;
|
||||
} else {
|
||||
n = baseClamp(toInteger(n), 0, length);
|
||||
n = toInteger(n);
|
||||
}
|
||||
while (++index < n) {
|
||||
var rand = baseRandom(index, lastIndex),
|
||||
value = result[rand];
|
||||
|
||||
result[rand] = result[index];
|
||||
result[index] = value;
|
||||
}
|
||||
result.length = n;
|
||||
return result;
|
||||
return arraySampleSize(isArrayLike(collection) ? collection : values(collection), n);
|
||||
}
|
||||
|
||||
module.exports = sampleSize;
|
||||
|
||||
Reference in New Issue
Block a user