2014-07-19 47 views
1

我並不完全是一個noob - 但幾乎:),我正在爲一個英語教學網站的基於JS的hang子手遊戲工作。我已經完成了一切工作'如果'我想要隨機選擇這些單詞,但這不幸通常意味着同一個單詞將連續重複幾次。所以我希望這些單詞按照它們出現在數組中的順序出現。我知道這是可笑的簡單,但不能爲我的生命得到這個代碼工作:如何從序列中隨機選擇項目而不是隨機

var words = ['petrol', 'leaded', 'rate', 'crime', 'behalf']; 

function chooseWord() { 
var wordsLength = words.length; 
for (var i = 0; i < wordsLength; i++) { 
return words [wordsLength[i]]; 
} 
} 

我會非常感謝任何建議/指針

非常感謝

特里

+0

這將始終選擇第一個單詞,它不會是隨機的,這根本不起作用。 –

+0

雖然這是他用這種解決方案得到的輸出,但他表示他不希望它是隨機的。 –

回答

2

簡單的解決方法......你不是索引數組正確

var words = ['petrol', 'leaded', 'rate', 'crime', 'behalf']; 

function chooseWord() { 
    var wordsLength = words.length; 
    for (var i = 0; i < wordsLength; i++) { 
     return words[i]; // index using the 'i' value, not the word length 
    } 
} 

但是,由於您在每次調用函數時都會返回,因此每次都會得到相同的單詞。嘗試這樣的事情,而不是:

var words = ['petrol', 'leaded', 'rate', 'crime', 'behalf']; 
var nextIndex = 0; 

function chooseWord() { 
    if (nextIndex >= words.length) { // make sure it doesn't get higher than the length. 
     nextIndex = 0; 
    } 
    nextIndex++; 
    return words[nextIndex-1]; 
} 

測試用:

alert(chooseWord()); 
alert(chooseWord()); 
alert(chooseWord()); 
alert(chooseWord()); 

每次你打電話,你會得到一個新詞。使用此測試的示例輸出:

petrol 
leaded 
rate 
crime 
+0

感謝Ryan,但仍然只是重複訪問數組中的第一個單詞 - 我曾嘗試過,但它只是不斷重複'汽油',而不是在數組中工作...... –

+0

好吧,現在試着 - 謝謝! :) –

+0

瑞恩,你是男人! :)非常感謝 - 不幸的是我不能投票給你,因爲我的代表還不夠 - 但會盡快完成。你救了我的培根! :) –