es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
19 lines (16 loc) • 638 B
JavaScript
import { sampleSize as sampleSize$1 } from '../../array/sampleSize.mjs';
import { isIterateeCall } from '../_internal/isIterateeCall.mjs';
import { clamp } from '../math/clamp.mjs';
import { toArray } from '../util/toArray.mjs';
import { toInteger } from '../util/toInteger.mjs';
function sampleSize(collection, size, guard) {
const arrayCollection = toArray(collection);
if (guard ? isIterateeCall(collection, size, guard) : size === undefined) {
size = 1;
}
else {
size = clamp(toInteger(size), 0, arrayCollection.length);
}
return sampleSize$1(arrayCollection, size);
}
export { sampleSize };