在我的程序中,我想生成5位数的随机数,只包含数字(1到7)。
var randnum = Math.floor(Math.random() * (11111 - 77777 + 1)) + 11111;
使用上面的代码我得到11111
和77777
之间的数字。但是如何生成不包含0,8,9
的数字?是否有任何默认方法来生成这种数字?
答案 0 :(得分:2)
您可以一次生成每个数字,然后连接它们,然后使用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
答案 1 :(得分:1)
例如,
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)
这样您就可以轻松选择要使用的数字。