js生成随机整数

基础
1、Math.random(),其结果为 [0,1) 区间的随机小数。
2、Math.floor(num),向下取num的整数部分
      eg: Math.floor(2.99) //2
      eg: Math.floor(0.01) //0
3、Math.round(num) 其结果为num四舍五入的整数
4、Math.ceil(n) 向上取整
      eg: Math.ceil(2.99) //3
      eg: Math.ceil(0.01) //1

生成随机数

var random = function(min, max){
      // 若max不存在 min 赋值给max,并重新赋值min
     if(max == null){
          max = min;  
          min = 0;
     }
     return min+ Math.floor(Math.random()*(max-min+1))
}
random(5)   // 生成[0, 4) 区间的整数

如上述所说Math.random() 为[0, 1)区间的小数,
乘以(max-min) 为生成从 [min,max) 的随机数,会发现随机数的最大值达不到max,故要加个1,使其生成[min,max] 闭区间的整数。

数组随机乱序

var shuffle = function(array){
    var rand ;
    var index = 0;
    var shuffled = []; // 准备一个空数组用于返回
    // 下面就是一个打乱数组顺序的过程
    for(var i =0; i<array.length;  i++){
        ////生成一个随机的索引
        var random = random(index++)
        // 避免出现空值,故 每次都需要给shuffled[index-1] 赋值
        shuffled[index-1] = shuffled[random];
        shuffled[random] = array[i];
    }
    return shuffled;   
}
shuffle([1,3,6]) // 数组随机乱序
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • js没有提供一个现成的函数直接生成某个范围的随机数。js只有一个Math.random() 函数返回一个浮点, ...
    爱扎马尾的小狮子阅读 33,393评论 2 6
  • .写一个函数,返回从min到max之间的 随机整数,包括min不包括max function randomness...
    邢烽朔阅读 328评论 0 1
  • 辛弃疾,南宋人。忠君爱国,文武双全。一生致力于抗击金国,收复失地。他是从战场上尸山血海中厮杀过来的人,所以他的军旅...
    吉祥三爷阅读 345评论 0 2
  • Hello,许久不见的你,近来还好吗? 不知道该如何定义“好”,只得用故事或者些许有画面感的东西来代替 “好”于我...
    育萍阅读 601评论 0 0
  • 余秋雨说,“每个人心里都有个死角,自己走不出来,别人也闯不进去”。总是以这样的理由劝自己,不是每个人生来就懂另...
    墨_蝶阅读 350评论 0 1