您的位置:首页 > 其它

生成不重复的随机数

2015-10-14 09:54 411 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: