2011-04-07 61 views
3

Math.random() in javascript is able to return 1,right?這意味着,如果我將用它來獲得我的陣列上的隨機指數下面的代碼可能會失敗:Javascript Math.random()

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

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

可能有人闡明這一些輕?

+5

值你甚至閱讀您鏈接到的文件?答案就在* first *句子上。 – 2011-04-07 11:54:55

+0

我做過了,但我不確定專屬是什麼意思。 – Kevin 2011-04-07 11:56:35

+1

@Kevin:那麼這個問題是脫離主題,並將在英語.stackoverflow.com更好地服務,純粹作爲一個語言問題提出。 – 2011-04-07 11:58:10

回答

8

您發佈的鏈接帶我去,說一個網站:

返回 範圍[0,1) - 即0 (含)和1(不含)之間的僞隨機數。隨機數生成器從當前時間的 開始播種,如在Java中。

「包容」是指值在該範圍的一部分,而「異」是指該值是範圍的一部分。

所以Math.random()返回0到剛剛低於1

8

沒有,則返回0 包容獨家

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

注意然而,在該頁面的警告:

注意,如在JavaScript中的數字是 IEEE 754浮點數與 的圓整到最接近的均勻行爲,這些 範圍,不包括一個用於 的Math.random()本身,不完全一樣, 並且根據界限是 可以在極爲罕見的情況下(上 1的順序在2 )來計算 上通常排除界。

儘管如此,你應該沒問題。

+0

所以我的英語讓我失望:'(。 – Kevin 2011-04-07 11:54:19

0

我敢肯定的

的Math.random()

小於1但等於或大於零返回的數字。

0

介於0(含)和1(獨家) - 不能是1

你的代碼是所有權利