通过将随机数(介于0和1之间)乘以5,我们使其成为0到5之间的随机数(例如,3.1841).Math.floor()将此数字向下舍入为整数,并在末尾添加1将范围从0到4更改为1到5之间(最多包括5).
上面的解释让我很困惑......我的解释如下:
- 添加5给它一个5个数字的范围 - 但它从0开始(像一个数组?) - 所以它在技术上是0 - 4 - 并通过添加一个,你使它1 - 5
我是JS的新手,甚至不知道这里的问题是否合适,但到目前为止这个网站一直都很棒.感谢您的任何帮助!
从Mozilla开发者网络的文件上Math.random():
Math.random()函数返回范围[0,1)中的浮点伪随机数,即从0(包括)到最多但不包括1(不包括).
以下是两个随机生成的数字示例:
Math.random() // 0.011153860716149211
Math.random() // 0.9729151880834252
Run Code Online (Sandbox Code Playgroud)
因此,当我们将随机生成的数字乘以另一个数字时,它的范围从0到最大值1,低于乘以的数字(因为Math.floor()只是删除小数位而不是舍入数字(也就是说,处理时Math.floor(),0.999变为0 ,而不是 1)).
Math.floor(0.011153860716149211 * 5) // 0
Math.floor(0.9729151880834252 * 5) // 4
Run Code Online (Sandbox Code Playgroud)
添加一个只是将其偏移到您所追求的值:
Math.floor(0.011153860716149211 * 5) + 1 // 1
Math.floor(0.9729151880834252 * 5) + 1 // 5
Run Code Online (Sandbox Code Playgroud)