从数组中每次取一个不同的数组成员 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)); };
开心的做一个无忧无虑的码农,争取每天进步一点。