UNPKG

mout

Version:

Modular Utilities

28 lines (24 loc) 704 B
import randInt from '../random/randInt'; /** * Remove random item(s) from the Array and return it. * Returns an Array of items if [nItems] is provided or a single item if * it isn't specified. */ function pick(arr, nItems) { if (nItems != null) { const result = []; if (nItems > 0 && arr && arr.length) { nItems = nItems > arr.length ? arr.length : nItems; while (nItems--) { result.push(pickOne(arr)); } } return result; } return arr && arr.length ? pickOne(arr) : void 0; } function pickOne(arr) { const idx = randInt(0, arr.length - 1); return arr.splice(idx, 1)[0]; } export default pick;