您好,登錄后才能下訂單哦!
今天小編給大家分享一下JavaScript生成隨機數的代碼怎么寫的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在JavaScript中可以通過Math.random()函數產生一個0~1之間的隨機數,但是這往往滿足不了我們平時的需求。Math.random函數就不像php的rand函數一樣可以生成指數范圍的數據了,math.random只是生成了一個偽隨機數,之后還要經過我們處理才行。但是我們可以通過其他方法來使其產生我們想要的隨機數。
Math.round(Math.random());
如果我們想設置在指定范圍里的隨機數也可通過以上的函數生成
例:生成8~100之間的隨機數
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Document</title></head><body><script>var num=Math.floor(Math.random()*100+8);document.write(num);</script></head><body></body></html>
如果你想生成10到100范圍的話只需要將后面的數字8改為10就可以了,通過上述方法我們就可以實現自定義范圍內隨機數的產生了
2.生成不重復的隨機數
有時可以通過特定的方法來產生隨機數但是它們之間不會重復,如下所示:
script>// 定義存放生成隨機數的數組 var array=new Array(); // 循環N次生成隨機數 for(var i = 0 ; ; i++){ // 只生成10個隨機數 if(array.length<10){ generateRandom(10); }else{ break; } } // 循環遍歷隨機數數組 for(var i = 0 ; i < array.length; i++){ document.write(array[i]); } // 生成隨機數的方法 function generateRandom(count){ var rand = parseInt(Math.random()*count); for(var i = 0 ; i < array.length; i++){ if(array[i] == rand){ return false; } } array.push(rand); } </script>
結果會出現一組符合我們要求的隨機數,我們每刷新一次就會顯示出一組新的隨機數,但我們可以看出每次生成的是個隨機數都各不相同。
利用 parseInt()、Math.floor() 或者 Math.ceil()進行四舍五入處理
我們看到,直接使用Math.random()方法,生成的是一個小于1的數,所以:
Math.random()*5
得到的結果是一個小于5的隨機數。而我們通常希望得到的是0-5之間的整數,所以我們需要對得到的結果四舍五入處理一下,從而得到我們期望的整數。parseInt()、Math.floor()和Math.ceil()都可以起到四舍五入的作用。
var randomNum = Math.random()*5; alert(randomNum); // 2.9045290905811183alert(parseInt(randomNum,10)); // 2alert(Math.floor(randomNum)); // 2alert(Math.ceil(randomNum)); // 3
由測試的代碼我們可以看到,parseInt()和Math.floor()的效果是一樣的,都是向下取整數部分。所以parseInt(Math.random()*5,10)和Math.floor(Math.random()*5)都是生成的0-4之間的隨機數,Math.ceil(Math.random()*5)則是生成的1-5之間的隨機數。
生成指定范圍數值隨機數
所以,如果你希望生成1到任意值的隨機數,公式就是這樣的:
// max - 期望的最大值parseInt(Math.random()*max,10)+1;Math.floor(Math.random()*max)+1;Math.ceil(Math.random()*max);
如果你希望生成0到任意值的隨機數,公式就是這樣的:
// max - 期望的最大值parseInt(Math.random()*(max+1),10);Math.floor(Math.random()*(max+1));
如果你希望生成任意值到任意值的隨機數,公式就是這樣的:
// min - 期望的最小值parseInt(Math.random()*(max-min+1)+min,10);Math.floor(Math.random()*(max-min+1)+min);
以上就是“JavaScript生成隨機數的代碼怎么寫”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。