Javascript Math.random()

时间:2011-04-07 11:52:49

标签: javascript arrays random

javascript中的

Math.random() 能够返回1,对吗?这意味着如果我将它用于在我的数组上获得随机索引,则以下代码可能会失败:

var arr = [ 1, 2, 3 ],
    index = Math.floor(Math.random() * arr.length);

// index could be 3?
alert(arr[index]);

有人可以对此有所了解吗?

4 个答案:

答案 0 :(得分:8)

不,它从0 包含返回到1 独家

请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random

请注意该页面中的警告:

  

请注意,JavaScript中的数字是   IEEE 754浮点数用   圆形到最近均匀的行为,这些   范围,不包括   Math.random()本身并不精确,   并取决于它的界限   可能在极少数情况下(在   计算中的2个 62 )的顺序   通常排除的上限。

但是,出于这些目的,你应该没事。

答案 1 :(得分:8)

您发布的链接将我带到了一个网址:

  

返回一个伪随机数   范围[0,1) - 即介于0之间   (包括)和1(独家)。该   随机数发生器来自   当前时间,如在Java中。

“inclusive”表示该值是范围的一部分,而“exclusive”表示该值不是范围的一部分。

因此Math.random()返回一个从0到小于1的值。

答案 2 :(得分:0)

我很确定

返回的号码
  

的Math.random()

小于1但等于或大于零。

答案 3 :(得分:0)

介于0(含)和1(独占)之间 - 不能为1

你的代码没问题