Math.random()方法返回介于0和l之間一個隨機(jī)數(shù),不包括0和1。對于某些站點來說,這個方法非常實用,南昌網(wǎng)絡(luò)公司技術(shù)人員認(rèn)為可以利用它來隨機(jī)顯示一些名人名言和新聞事件。套用下面的公式,就可以利用Math.random()從某個整數(shù)范圍內(nèi)隨機(jī)選擇一個值:
值=Math.floor(Math.random()*可能值的總數(shù)+第一個可能的值)
公式中用到了Math.floor()方法,這是因為Math.random()總返回一個小數(shù)值。而用這個小數(shù)值乘以一個整數(shù),然后再加上一個整數(shù),最終結(jié)果仍然還是一個小數(shù)。舉例來說,如果你想選擇一個1到10之間的數(shù)值,可以像下面這樣編寫代碼:
var num=Math.floor(Math.random()*10+1);
總共有10個可能的值(1到10),而第一個可能的值是1。而如果想要選擇一個介于2到10之間的值,就應(yīng)該將上面的代碼改成這樣:
var num=Math.floor(Math.random()*9+2);
從2數(shù)到10要數(shù)9個數(shù),因此可能值的總數(shù)就是9,而第一個可能的值就是2。多數(shù)情況下,其實都可以通過一個函數(shù)來計算可能值的總數(shù)和第一個可能的值,例如:
function selectFrom(lowervalue, upperValue) {
vat choices=upperValue-lowerValue+1;
return Math.floor(Math.random()*choices+lowerValue);
}
var num=SelectFrom(2,10);
alert(num); //介于2和10之間(包括2和10)的一個數(shù)值
函數(shù)selectFrom()接受兩個參數(shù):應(yīng)該返回的最小值和最大值。而用最大值減最小值再加1得到了可能值的總數(shù),然后它又把這些數(shù)值套用到了前面的公式中。這樣,通過調(diào)用selectFrom(2,10)就可以得到一個介干2和10之間(包括2和10)的數(shù)值了。利用這個函數(shù),可以方便地從數(shù)組中隨
機(jī)取出一項,例如:
var colors=["red","green","blue","yellow","black","purple","brown"];
var color=colors[selectFrom(0,colors.1ength一1)];
alert(color); //可能是數(shù)組中包含的任何一個字符串
在這個例子中,傳遞給selectFrom()的第二個參數(shù)是數(shù)組的長度減l,也就是數(shù)組中最后一項的位置。
文章出自:南昌網(wǎng)站設(shè)計公司-百恒網(wǎng)絡(luò) http://www.gimmickmag.com 如轉(zhuǎn)載請注明出處!