在我的程序中,我想生成 5 位随机数,例如仅包含数字(1 到 7)的随机数。
var randnum = Math.floor(Math.random() * (11111 - 77777 + 1)) + 11111;
使用上面的代码,我得到了 和 之间的11111
数字77777
。但是如何生成不包含的数字0,8,9
呢?是否有任何默认方法来生成这种数字?
在我的程序中,我想生成 5 位随机数,例如仅包含数字(1 到 7)的随机数。
var randnum = Math.floor(Math.random() * (11111 - 77777 + 1)) + 11111;
使用上面的代码,我得到了 和 之间的11111
数字77777
。但是如何生成不包含的数字0,8,9
呢?是否有任何默认方法来生成这种数字?
您可以一次生成每个数字,将它们连接起来,然后 parseInt 得到你的结果:
var str = '';
for (var i=0; i<5; i++) {
str += Math.floor(Math.random()*7) + 1;
}
var randnum = parseInt(str);
解释
Math.random()
返回 [0,1)
Math.random() * 7
返回 [0,7)
Math.floor(...)
返回 0,1,2,3,4,5,6
...+1
返回 1,2,3,4,5,6,7
例如,
digits = [1,2,3,4,5,6,7]
len = 5
num = 0
while(len--)
num = num * 10 + digits[Math.floor(Math.random() * digits.length)]
console.log(num)
这样,您可以轻松选择要使用的数字。