JS中Math.random()的使用和擴展


Math.random()方法返回大於等於 0 小於 1 的一個隨機數。對於某些站點來說,這個方法非常實用,因為可以利用它來隨機顯示一些名人名言和新聞事件。

在連續整數中取得一個隨機數

值 = Math.floor(Math.random() * 可能值的總數 + 第一個可能的值)

例:產生1-10的隨機數

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

編寫產生startNumber至endNumber隨機數的函數

function selectFrom(startNumber, endNumber) {
    var choice = endNumber - startNumber + 1;
    return Math.floor(Math.random() * choice + startNumber)
}
var rand2 = selectFrom(2,8);//產生2至8的隨機數

在不相鄰整數中取得一個隨機數

在不相鄰的兩個整數中取得一個隨機數

例:隨機產生2或4中的一個數

var rand3 = Math.random() < 0.5 ? 2 : 4;

在不相鄰的多個整數中產生一個隨機數

結合函數參數數組,可編寫在不相鄰的多個整數中產生一個隨機值的函數

function selectFromMess() {
    return arguments[Math.floor(Math.random() * arguments.length)]
}
//隨機產生1、6、8中的一個數
var rand4 = selectFromMess(1, 6, 8);

//也可隨機產生文本
var randomTxt1 = selectFromMess("安慰獎", "二等獎", "一等獎");

每次要輸入這么多參數比較麻煩,可以改寫一下函數

function selectFromMessArray(arr) {
    return arr[Math.floor(Math.random() * arr.length)]
}
var arrayTxt=["一","二","三","四","五"];
var randTxt2 = selectFromMessArray(arrayTxt);

或者不改變原有方法,可以利用apply()這個方法傳遞數組參數

var randTxt3 = selectFromMess.apply(null,arrayTxt);

關於apply方法的使用可以看這里


免責聲明!

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



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