如何在JavaScript中生成一个随机整数

205 阅读2分钟

JavaScript - 在特定范围内生成一个随机整数

这个简洁的教程将告诉你如何用几行代码在JavaScript中生成一个随机整数(整数)。

GitHub资源库

要查看使用的代码,请看我为这篇文章创建的GitHub仓库

GitHub - mr-pascal/medium-js-generate-whole-number

你现在不能执行该操作。你用另一个标签或窗口登录。您在另一个标签页或窗口中签出。

(github.com/mr-pascal/m…)

代码

让我们直接进入代码,它将返回给你一个特定范围内的随机整数,然后更深入地挖掘它的工作原因。如果你只是对代码感兴趣,而不关心为什么,你当然可以在这里停下来😉。

既然你似乎想知道发生了什么,让我们更详细地检查一下代码。

min = Math.ceil(min);max = Math.floor(max);

如果你100%确定你的minmax 值的输入总是整数而不是小数,你就不需要这两行。这两行是为了确保在输入小数的情况下,我们向上(min )或向下(max )四舍五入,将数字范围的外部带子定义为整数而不是小数。

如果我们不这样做,有人输入一个小数,我们也会得到一个小数值作为输出,而不是一个整数。

例子。

min = 1.1min = 2

max = 7.7max = 7

结果范围→[2...7]

现在让我们来看看代码中更复杂的一行。

Math.floor(Math.random() * (max — min + 1)) + min;

让我们从右边的+ min 语句开始。这定义了我们的范围左边的最小值。我们从min 开始,然后添加一些随机数,直到最大的max

方程的max — min 部分定义了我们的最小值和最大值之间的差值,因此,我们最多允许在我们的min 值上增加一个值以保持在范围内。

由于Math.random() ,在01 之间产生一个随机数,而0 是包容性的,1 是排他性的,我们在max — min 的差值上再加一个+ 1 。从理论上讲,这将导致一个高于我们的最大值的值,对于Math.random() 返回值。为了应对这种情况,我们使用Math.floor() ,将结果值向下舍入。

但是,为了详细了解计算方法,你最好看看下面的例子,其中我展示了可能的Math.random() 值的极值,以及 "正常 "情况。

例子

让我们来看看一些例子,以验证数学计算是否有效。

下面的例子在插入变量值后,一步步解决了上面最后一行代码的问题。

min = 2;max = 7;

正如你所看到的,即使有最大和最小值Math.random() ,结果也保持在有效值的范围内。

你想联系吗?

如果你想联系我,请在LinkedIn上联系我。