使用javascript中的特定数字生成随机数

时间:2013-09-26 07:57:29

标签: javascript random

在我的程序中,我想生成5位数的随机数,只包含数字(1到7)。

var randnum = Math.floor(Math.random() * (11111 - 77777 + 1)) + 11111;

使用上面的代码我得到1111177777之间的数字。但是如何生成不包含0,8,9的数字?是否有任何默认方法来生成这种数字?

2 个答案:

答案 0 :(得分:2)

您可以一次生成每个数字,然后连接它们,然后使用parseInt获取结果:

var str = '';
for (var i=0; i<5; i++) {
  str += Math.floor(Math.random()*7) + 1;
}
var randnum = parseInt(str);

Demo

解释

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)

这样您就可以轻松选择要使用的数字。