12345678910111213141516171819202122232425262728293031 |
- 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;
|