码迷,mamicode.com
首页 > 其他好文 > 详细

生成不重复的随机数

时间:2015-10-14 10:27:30      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

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

 

生成不重复的随机数

标签:

原文地址:http://www.cnblogs.com/frontendBY/p/4876547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!