UNPKG

802 BJavaScriptView Raw
1var randInt = require('../random/randInt');
2
3 /**
4 * Remove random item(s) from the Array and return it.
5 * Returns an Array of items if [nItems] is provided or a single item if
6 * it isn't specified.
7 */
8 function pick(arr, nItems){
9 if (nItems != null) {
10 var result = [];
11 if (nItems > 0 && arr && arr.length) {
12 nItems = nItems > arr.length? arr.length : nItems;
13 while (nItems--) {
14 result.push( pickOne(arr) );
15 }
16 }
17 return result;
18 }
19 return (arr && arr.length)? pickOne(arr) : void(0);
20 }
21
22
23 function pickOne(arr){
24 var idx = randInt(0, arr.length - 1);
25 return arr.splice(idx, 1)[0];
26 }
27
28
29 module.exports = pick;
30
31