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