JavaScript是一種常用的腳本語言,可以在網站任意頁面中嵌入。
一、生成1到99隨機數
生成1到99的隨機數可以採用Math對象的方法random(),它返回介於0到1之間的一個偽隨機數。
function randomNum() { return Math.floor(Math.random() * 100); } console.log(randomNum());
上述代碼中,通過Math.floor()將隨機數向下取整,並乘以100來生成0到99之間的隨機數。
二、生成指定位數的隨機數
我們可以通過重複調用random()方法並截取所需位數的方式來生成任意位數的隨機數。
function randomLength(len) { var num = ""; for (var i = 0; i < len; i++) { num += Math.floor(Math.random() * 10).toString(); } return parseInt(num); } console.log(randomLength(6));
上述代碼中,通過循環遍歷並調用Math.random()生成0到9之間的隨機數,並將結果拼成字元串,再調用parseInt()將字元串轉化為數字。
三、生成不重複的隨機數
我們可以通過構造一個數字範圍的數組並隨機獲取其中的元素,來生成不重複的隨機數。
function randomUnique(min, max, count) { var range = []; for (var i = min; i <= max; i++) { range.push(i); } var result = []; for (var j = 0; j < count; j++) { var index = Math.floor(Math.random() * range.length); result.push(range[index]); range.splice(index, 1); } return result; } console.log(randomUnique(1, 10, 5));
上述代碼中,將給定數字範圍中的數字構造成數組range,隨機獲取range數組中的元素,並移除已獲取的元素,從而生成指定數量的不重複隨機數。
四、生成隨機數字0到20
function randomTwenty() { return Math.floor(Math.random() * 21); } console.log(randomTwenty());
上述代碼中,通過Math.random()方法生成介於0到1之間的偽隨機數,並乘以21,再通過Math.floor()將隨機小數向下取整,生成0到20之間的整數。
五、生成隨機數範圍
我們可以給定一個範圍,再加上一個偏移量來生成更大的隨機數範圍。
function randomRange(min, max, offset) { var range = max - min; var random = Math.random() * (range + offset * 2) - offset; return Math.floor(random) + min; } console.log(randomRange(1, 10, 2));
上述代碼中,通過計算出給定範圍和偏移量的總長度,並使用Math.random()方法生成隨機浮點數,再通過Math.floor()對隨機數向下取整,從而得到位於給定範圍內並帶有偏移量的隨機整數。
六、隨機生成5個隨機數
function fiveRandom() { var result = []; for (var i = 0; i < 5; i++) { result.push(Math.floor(Math.random() * 100)); } return result; } console.log(fiveRandom());
上述代碼中,通過循環5次調用Math.random()方法生成介於0到1之間的偽隨機數,並通過Math.floor()將隨機小數向下取整,生成0到99之間的整數,最後將這些整數依次添加到數組中。
七、選取3~5個與js生成隨機數的方法相關
涉及到Js生成隨機數的方法還有很多,比如:
- 為數組排序,然後[隨機抽取](http://agroup.baidu.com/20200708/773219004.html)幾個數;
- 使用[時間戳](http://www.qdfuns.com/notes/44927/9837b8da20a7804ec09b0d0743bc595b.html)作為隨機數生成的種子,類似Math.random();
- 生成[UUID](https://www.cnblogs.com/linsf/p/7072776.html)(全局唯一標識符)。
以上所有方法都可以在特定的場景下使用,具體方法的選擇取決於應用程序的需求。
原創文章,作者:AXYW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146521.html