从数组中每次取一个不同的数组成员 getRandomItem(arr)

积累些常用的方法, 都是随写的, 不好之处, 望指出。

 

getRandomItem(arr)函数如下:

 1         var getRandomItem = function () {
 2             var preItem = null;
 3 
 4             return function (arr) {
 5 
 6                 var index = Math.floor(Math.random() * arr.length),
 7                     item = arr[index],
 8                     result;
 9 
10                 arr = arr.sort(function() {    // 数组随机排序(在这里有点多此一举,可去掉 哈哈)
11                     return Math.random() > 0.5 ? -1 : 1;
12                 });
13 
14                 if (preItem != item) {
15 result = preItem = item;
17
} else { 18 result = getRandomItem(arr); 19 }; 20 21 return result; 22 }; 23 }();

 

测试一下是否有重复的:

        var arr=[1, 54, 3, 23, 15, 6, 27, -8, 49, 10, 62, 33, 15, 74, 86, 99];  
        for (var i = 0, len = 1000; i < len; i ++) {
            console.log(getRandomItem(arr));
        };

 

posted @ 2017-03-03 10:22  Sorrow.X  阅读(547)  评论(0编辑  收藏  举报