64086784f260ea2bb86dea0eddce58a26d8cab84
[platform/framework/web/crosswalk-tizen.git] /
1 var 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