JavaScript中Math.random()方法生成隨機數的通用函數


Math.random()方法返回介於0 ~ 1 的一個隨機數,不包括0和1,對於一些場景,這樣的返回值很有用。比如,新聞網站用於隨機顯示新聞事件,套用下面的公式,就可以利用Math.random()方法從某一范圍內隨機選擇一個值。

value = Math.floor(Math.random() * 范圍值 + 第一個可能的值);

因為Math.random()總的返回一個小數值,用這個小數值乘以以個整數,然后再加上一個整數,結果仍然為一個小數。上面公式中用到了 Math.floor() 方法,將小數向下取整,取得我們需要的隨機整數值。

舉2個例子,我們需要取得1 ~ 10 的隨機整數:

var randomNum = Math.floor(Math.random() * 10 + 1 ); 

console.log(randomNum); //介於1和10之間的隨機數(包括1和10)。總共有10個值的可能(1~10),而第一個可能的值是1.。如果是2到10 的數,就是

 

var randomNum = Math.floor(Math.random() * 9 + 2 ); 

console.log(randomNum); //介於2和9之間的隨機數(包括2和9)。從2到10總共有9個數,而第一個可能的值是2。

根據以上方法,抽離出一個比較通用的函數:

function randomNum(lowerValue,upperValue){

var choices = upperValue - lowerValue + 1;
var num = Math.floor(Math.random() * choices + lowerValue );
return num;

}

函數randomNum()接受兩個參數,應該返回的最小值和最大值,而最大值減去最小值再加1得到的是可能值總數,然后就套用前面的公式。前面的兩個例子分別可以使用函數,如下:

randomNum(1,10); //介於1和10之間的隨機數(包括1和10)

randomNum(2,9); //介於2和9之間的隨機數(包括2和9)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM