我想生成一个0-9个数字且长度为5的随机整数。我试试这个:
function genRand(min,max) {
for (var i = 1; i <= 5; i++) {
var range = max - min + 1;
return Math.floor(Math.random()*range) + min;
}
}
并致电:
genRand(0,9);
但它总是返回1个数字,而不是5(
请帮忙!
答案 0 :(得分:13)
function genRand() {
return Math.floor(Math.random()*89999+10000);
}
答案 1 :(得分:8)
return
退出第一个循环的函数。
答案 2 :(得分:2)
最小的5位数字是10000,最大的是99999,或10000 + 89999。
返回0到89999之间的随机数,并将其添加到最小值。
var ran5=10000+Math.round(Math.floor()*90000)
Math.floor向下舍入,Math.random大于或等于0且小于1。
答案 3 :(得分:1)
要获得一个5位数的随机数,会在范围(10000,99999)之间生成随机数。或者随机生成5个单位并粘贴它们。
修改强>
您显示的过程只会生成一个数字并返回给调用者。可能有效的思考是(伪代码):
int sum = 0;
int m = 1;
for (i=0;i<5;i++)
{
sum = sum + m * random (0, 9);
/* or */
sum = sum * m + random (0, 9);
m = m * 10;
}
或者更好地使用rand (10000, 99999)
答案 4 :(得分:1)
这是Nate B答案的更为通用的版本:
function rand(digits) {
return Math.floor(Math.random()*parseInt('8' + '9'.repeat(digits-1))+parseInt('1' + '0'.repeat(digits-1)));
}