在JavaScript中,并没有直接提供自定义范围内获取随机数的方法,但通过Math.random()
函数的利用稍加处理即可实现此功能。
在JavaScript中Math.random()
方法返回介于0至1之间的一个随机小数,不包括0和1。显然,这个功能不能直接满足我们的需求,我们需要的是从n到m之间的随机整数。
我们先来看第一个需求的实现:获取1到10之间的随机数
/**
* JS获取1到10随机数
* 琼台博客 www.qttc.net
*/
function rd(){
return Math.floor(Math.random()*10+1);
}
console.log(rd()); // Output: 8
以上公式中,使用了Math.floor()
方法。先使用Math.random()
方法产生一个小数随机值,然后乘以10使个位数在1至10之间,然后使用Math.floor()
方法舍去小数部分即可实现。
在以上案例的基础上我们写一个可以随机产生n至m之间的任意随机整数就非常容易了,请看以下代码
/**
* JS获取n至m随机整数
* 琼台博客 www.qttc.net
*/
function rd(n,m){
var c = m-n+1;
return Math.floor(Math.random() * c + n);
}
var n = 5;
var m = 100;
console.log(rd(n,m)); // Output: 80