JavaScript之随机数random

发表于2020年07月16日 22:37:22 • 阅读261

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

文章标题:JavaScript之随机数random

文章作者:大古

文章链接:https://blog.988898.xyz/archives/javascript-random.html

版权声明:本站原创内容均采用《署名 - 非商业性使用 - 相同方式共享 4.0 国际》进行许可,转载请注明出处。

温馨提示:请注意文章发表时间,某些文章所述内容可能具有时效性,文章描述可能已经失效。

添加新评论
暂未有人评论
快来抢沙发