积累些常用的方法, 都是随写的, 不好之处, 望指出。
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)); };