在Web開發(fā)中,我們通常需要使用隨機(jī)數(shù)。比如說隨機(jī)推薦一些文章,或者隨機(jī)生成驗(yàn)證碼等等。在JavaScript中,我們可以使用Math對(duì)象的random()方法生成一個(gè)[0,1)之間的隨機(jī)數(shù)。但是如果我們需要生成一個(gè)區(qū)間為[1,100]的隨機(jī)數(shù),該怎么做呢?接下來,我們就來看一下,如何在JavaScript中生成1到100的隨機(jī)數(shù)。
首先,我們可以使用Math對(duì)象的random()方法生成一個(gè)[0,1)之間的隨機(jī)數(shù),然后將其乘以100,最后向下取整,得到一個(gè)[0,99]的整數(shù)。那么,我們需要如何將其轉(zhuǎn)換為[1,100]的整數(shù)呢?實(shí)際上,我們只需要在最后的結(jié)果上加1即可。
var randomNum = Math.floor(Math.random() * 100) + 1;console.log(randomNum);
上述代碼中,我們使用了Math.floor()方法向下取整。由于Math.random()方法會(huì)返回一個(gè)小數(shù),所以我們需要將其乘以100,然后再向下取整,得到一個(gè)0到99之間的整數(shù)。但是我們需要的是1到100之間的整數(shù),所以我們?cè)谧詈蟮慕Y(jié)果上加1。
除了使用Math對(duì)象的random()方法外,我們還可以使用數(shù)組進(jìn)行隨機(jī)。我們可以將1到100的整數(shù)放入一個(gè)數(shù)組中,然后隨機(jī)獲取數(shù)組中的一個(gè)元素。
var arr = [];for (var i = 0; i < 100; i++) { arr[i] = i + 1;}var randomIndex = Math.floor(Math.random() * 100);var randomNum = arr[randomIndex];console.log(randomNum);
上述代碼中,我們首先創(chuàng)建一個(gè)包含1到100的整數(shù)的數(shù)組。然后,我們使用Math.random()方法生成一個(gè)0到1之間的隨機(jī)數(shù),乘以100之后向下取整,得到數(shù)組中的一個(gè)隨機(jī)索引。最后,我們從數(shù)組中獲取這個(gè)隨機(jī)索引對(duì)應(yīng)的元素,得到一個(gè)1到100的隨機(jī)數(shù)。
除了使用Math對(duì)象的random()方法和數(shù)組進(jìn)行隨機(jī)外,我們還可以使用Date對(duì)象進(jìn)行隨機(jī)。具體來說,我們可以獲取當(dāng)前時(shí)間的毫秒數(shù),然后對(duì)100取余數(shù),最后加1得到一個(gè)1到100之間的隨機(jī)數(shù)。
var date = new Date();var randomNum = date.getMilliseconds() % 100 + 1;console.log(randomNum);
上述代碼中,我們首先創(chuàng)建了一個(gè)Date對(duì)象,然后獲取了當(dāng)前時(shí)間的毫秒數(shù)。由于Date對(duì)象的getMilliseconds()方法返回的是0到999之間的數(shù)值,所以我們對(duì)100取余數(shù),得到0到99之間的數(shù)值。最后,我們將結(jié)果加1,得到一個(gè)1到100之間的隨機(jī)數(shù)。
以上就是在JavaScript中生成1到100的隨機(jī)數(shù)的三種方法,你可以根據(jù)自己的需要選擇其中的一種方法來使用。希望這篇文章對(duì)你有所幫助。
下一篇:建筑師李虎 黃文菁(建筑師黃李合作之路) 下一篇 【方向鍵 ( → )下一篇】
上一篇:每當(dāng)變幻時(shí) 薰妮(度轉(zhuǎn)時(shí)移,薰妮的思考) 上一篇 【方向鍵 ( ← )上一篇】
快搜