生成一个随机的四位数引脚,最后一位数始终为零

Ben*_*wis 2 javascript random

我正在尝试使用Javascript生成一个四位数的密码,介于0000和9999之间.我有问题,自然会产生像403这样的数字,所以一切都以0为前缀,然后我substr用来得到最后四位数.

出于某种原因,最后一个数字始终为零,我不知道为什么:

function generatePin () {
    min = 0,
    max = 9999;
    return ("0" + Math.floor(Math.random() * (max - min + 1)) + min).substr(-4);
}
Run Code Online (Sandbox Code Playgroud)

运行10次的输出是:

2200
1070
9370
4870
5190
5490
5240
7410
1190
0220
2310
Run Code Online (Sandbox Code Playgroud)

Sam*_*ley 5

它以0结尾,因为在你的数字的末尾,你有+ min,并且min是0.它执行字符串连接,而不是整数加法,所以你要在0到最后添加.只需删除该位,它将解决问题.

而Buck Doyle(原谅我不知道如何链接到用户这一事实)是非常正确的 - 如果你要将整个事情解析为一个字符串,你需要一些更多的前导零.即使你随机分配1,前面的三个零也会给你一个四位数的字符串.


小智 5

Math.random().toString().substr(2,4)
Run Code Online (Sandbox Code Playgroud)