【发布时间】:2011-08-22 16:33:43
【问题描述】:
我不明白这段代码中的某些内容:
vars.randAnim = anims[Math.floor(Math.random()*(anims.length + 1))];
假设我们有一个新的Array,有 5 个元素,所以从索引 0 到索引 4
那么假设Math.random() 返回 1。所以,我们得到了1*5 的下限,但是我的Array 中不存在 5 索引,而且我们在这里添加了一个“+1”
为什么要 +1?我本来期望与“-1”完全相反。
【问题讨论】:
-
+1在这里实际上是错误的。 :-) -
假设
Math.random()返回 .99,然后,.99*5=4.95 然后 4.95+1=5.95 然后Math.floor将返回 5,这将超出数组的范围。因此问题是:为什么+1到底是什么? -
代码 +1 是错误的,正如 Rocket 所说。但这个推理也有一个缺陷:Math.random() 不能返回“1”。
-
@Rocket @leonbloy @sv_in @Kevin :谢谢,这真的正确吗? math.random 永远不会是 '1' ??我第一次听说,非常感谢您的提示
标签: javascript arrays math random