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