生成不重复的随机数
0x00、从一个数组(arr)随机生成有(num)个不相同的值的数组
function createRandom( num, arr ) { var arrCache = [], objCache = {}; while( arrCache.length < num ) { var randomNum = Math.floor( Math.random() * arr.length ); //通过判断objCache对象的索引值是否存在 来标记 是否重复 if( !objCache[randomNum] ) { objCache[randomNum] = 1; arrCache.push( arr[randomNum] ); } } return arrCache; }
0x01、生成一个范围数组,然后数组打乱顺序,截取你需要的个数
/* num 要产生多少个随机数 from 产生随机数的最小值 to 产生随机数的最大值 */ function createRandom( num ,from ,to ) { var arr=[]; for( var i = from; i <= to; i++ ) arr.push( i ); arr.sort(function(){ return 0.5 - Math.random(); }); arr.length = num; return arr; }