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

时间:2023-03-10 01:45:47
从数组中每次取一个不同的数组成员 getRandomItem(arr)

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

getRandomItem(arr)函数如下:

         var getRandomItem = function () {
var preItem = null; return function (arr) { var index = Math.floor(Math.random() * arr.length),
item = arr[index],
result; arr = arr.sort(function() { // 数组随机排序(在这里有点多此一举,可去掉 哈哈)
return Math.random() > 0.5 ? -1 : 1;
}); if (preItem != item) {
result = preItem = item; } else {
result = getRandomItem(arr);
}; return result;
};
}();

测试一下是否有重复的:

        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));
};

相关文章