JavaScript之随机数random
众所周知,JavaScript只提供一个随机数random方法(2023年更新 还有其他方法咯crypto.getRandomValues),并且Math.random()产生的是0~1(不包含1)之间的随机小数,所以使用过程中一般不能直接使用,需要经过处理之后才能得到自己想要的随机范围。
这次就总结几种常用情况备忘,方便以后查找。
一、随机取出数组中的任意一个元素
一般遇到这种情况,我比较倾向于用一个相当于固定公式。
var arr = [1,2,'a','b'...,'end'];
//随机背景颜色
elem.style.backgroundColor = arr[Math.floor(Math.random()*arr.length)];
因为random()产生的是0~1之间,然后再乘上数组长度,四舍五入向下取整。而数组的索引方式,又是从0开始,所以正好就能随机数组长度范围内的数。
二、随机1-10或1-100整数等类似范围
一般这种随机情况,平时也十分常见,但也特别好处理。
Math.floor((Math.random()*10)+1) //不加1随机范围是0~9
三、随机0-10或0-100
这种情况应该也会经常用到,所以也有必要写一下。
//这种方法 0-100或0-1000理论上可行
Math.round(Math.random() * 100); //返回0-100 因为Math.round()方法四舍五入为最接近的数 理论上来说 当随机到99.5以上的小数时就会取整为100
四、随机类似任意范围整数
这种情况可能偶尔也会遇到,所以也可以写个备忘。
//返回 min(包含)~ max(不包含)之间的数字
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
//返回 min(包含)~ max(包含)之间的数字
function rand(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
console.log(rand(0,2));
console.log(rand(50,80));
基本够用了,等有时间再来补充crypto.getRandomValues的使用方法。
所属分类:
前端
文章标签:
#js