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
微信掃一掃
支付寶掃一掃