js生成隨機整數(shù)

基礎
1、Math.random(),其結果為 [0,1) 區(qū)間的隨機小數(shù)。
2、Math.floor(num),向下取num的整數(shù)部分
? ? ? eg: Math.floor(2.99) //2
? ? ? eg: Math.floor(0.01) //0
3、Math.round(num) 其結果為num四舍五入的整數(shù)
4、Math.ceil(n) 向上取整
? ? ? eg: Math.ceil(2.99) //3
? ? ? eg: Math.ceil(0.01) //1

生成隨機數(shù)

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) 區(qū)間的整數(shù)

如上述所說Math.random() 為[0, 1)區(qū)間的小數(shù),
乘以(max-min) 為生成從 [min,max) 的隨機數(shù),會發(fā)現(xiàn)隨機數(shù)的最大值達不到max,故要加個1,使其生成[min,max] 閉區(qū)間的整數(shù)。

數(shù)組隨機亂序

var shuffle = function(array){
    var rand ;
    var index = 0;
    var shuffled = []; // 準備一個空數(shù)組用于返回
    // 下面就是一個打亂數(shù)組順序的過程
    for(var i =0; i<array.length;  i++){
        ////生成一個隨機的索引
        var random = random(index++)
        // 避免出現(xiàn)空值,故 每次都需要給shuffled[index-1] 賦值
        shuffled[index-1] = shuffled[random];
        shuffled[random] = array[i];
    }
    return shuffled;   
}
shuffle([1,3,6]) // 數(shù)組隨機亂序
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • js沒有提供一個現(xiàn)成的函數(shù)直接生成某個范圍的隨機數(shù)。js只有一個Math.random() 函數(shù)返回一個浮點, ...
    愛扎馬尾的小獅子閱讀 33,704評論 2 6
  • .寫一個函數(shù),返回從min到max之間的 隨機整數(shù),包括min不包括max function randomness...
    邢烽朔閱讀 369評論 0 1
  • 辛棄疾,南宋人。忠君愛國,文武雙全。一生致力于抗擊金國,收復失地。他是從戰(zhàn)場上尸山血海中廝殺過來的人,所以他的軍旅...
    吉祥三爺閱讀 394評論 0 2
  • Hello,許久不見的你,近來還好嗎? 不知道該如何定義“好”,只得用故事或者些許有畫面感的東西來代替 “好”于我...
    育萍閱讀 717評論 0 0
  • 余秋雨說,“每個人心里都有個死角,自己走不出來,別人也闖不進去”??偸且赃@樣的理由勸自己,不是每個人生來就懂另...
    墨_蝶閱讀 412評論 0 1

友情鏈接更多精彩內容