pick.js
802 Bytes
var randInt = require('../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) {
var 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){
var idx = randInt(0, arr.length - 1);
return arr.splice(idx, 1)[0];
}
module.exports = pick;