JavaScript是一種強大的編程語言,在JavaScript中,生成隨機數是很常見的需求,隨機數可以應用在遊戲、抽獎、隨機數據等場景中。本文將從不同的角度詳解JavaScript隨機數的生成方法,讓你能夠熟練的利用JavaScript生成隨機數。
一、JavaScript生成1到100的隨機數
1、利用Math.random()函數生成0到1的隨機小數
function genNum(){ var num = Math.floor(Math.random() * 100); return num + 1; } console.log(genNum());
2、使用Math.floor()函數將隨機小數向下取整,使得結果在0~99之間
3、再將結果加1,使得結果在1~100之間
二、JavaScript生成不重複的隨機數
1、創建一個空數組,用來保存隨機數
2、使用while循環來生成隨機數,直到數組中元素個數達到指定大小
3、每次生成隨機數前,先判斷數組中是否包含該隨機數,若不包含才添加到數組中
function genNumArray(length, maxNum) { var nums = []; var idx = 0; while (idx < length) { var num = Math.floor(Math.random() * maxNum) + 1; if (nums.indexOf(num) === -1) { nums.push(num); idx ++; } } return nums; } console.log(genNumArray(5, 10));
三、JavaScript隨機數生成函數
1、編寫一個函數用於生成指定範圍內的隨機數,函數需要接收參數,包括最小值和最大值
2、計算隨機數的範圍為(max – min) + 1,保證在指定範圍內每個數出現的概率相等
3、使用Math.floor()函數將隨機數向下取整,再加上最小值,保證隨機數在指定範圍內取值
function randomNumber(min, max){ return Math.floor(Math.random() * (max - min + 1)) + min; } console.log(randomNumber(10, 30));
四、JavaScript隨機數五花八門
1、JavaScript生成指定長度隨機字母
function randomString(len){ var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var result = ""; for (var i = 0; i < len; i++){ result += chars.charAt(Math.floor(Math.random() * chars.length)); } return result; } console.log(randomString(10));
2、JavaScript生成隨機布爾值
function randomBoolean(){ return Math.random() >= 0.5; } console.log(randomBoolean());
3、JavaScript生成隨機RGB顏色
function randomColor(){ var r = Math.floor(Math.random() * 256); var g = Math.floor(Math.random() * 256); var b = Math.floor(Math.random() * 256); return "rgb(" + r + ", " + g + ", " + b + ")"; } console.log(randomColor());
4、JavaScript生成隨機十六進位顏色
function randomHexColor(){ var color = Math.floor(Math.random() * 0xFFFFFF).toString(16).padStart(6, '0'); return "#" + color; } console.log(randomHexColor());
5、JavaScript生成隨機UUID
function uuid(){ return Math.random().toString(36).substr(2, 9); } console.log(uuid());
總結:JavaScript生成隨機數是很常見的需求,本文從不同的角度詳解了JavaScript隨機數的生成方法,旨在讓讀者能夠熟練的利用JavaScript生成隨機數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280809.html