如何使用数组生成随机数

时间:2019-07-22 14:00:56

标签: javascript arrays random

我想在范围之间生成一个随机数。这是一个不和谐的机器人。 因此,如果有人想生成一个随机数,则需要写!rn min max 例如:!rn 1 10。最小和最大数将传递到名为args的数组。 minargs[0]中,而maxargs[1]中。现在,我想让机器人使用args[0]args[1]发送随机数。这是我尝试做的事情:

if (msg.startsWith(prefix + 'RANDOMNUM') || msg.startsWith(prefix + 'RN')) {
    message.channel.send(Math.floor(Math.random() * (args[1] - args[0] + 1)) + args[0]);
}

它检查是否有人写!rn!randomnum,然后应该在args[0]args[1]之间生成一个随机数。

现在有两个问题。

第一个是如果最小编号为1,则漫游器将发送用户编写的最大编号。因此,如果我写!rn 1 5,无论您尝试多少次,它都会发送数字5。

第二个问题,如果最小数字不为1,它将采用最小数字,将其设置为1,然后将最大数字加到该数字上。听起来很奇怪,但这是一个示例:

如果我写!rn 4 8,它将发送18。如果我写!rn 2 5,它将发送15。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您必须反转数字。应该是:

Math.floor(Math.random() * (args[1] - args[0])) + args[0]);