如何从序列中选择项目而不是随机选择

时间:2014-07-19 20:46:25

标签: javascript arrays

我不是一个菜鸟 - 但差不多:),我正在为英语教学网站开发一个基于JS的刽子手游戏。我把一切都做得很完美' IF'我想要随机选择单词,但不幸的是,这通常意味着同一个单词将连续重复几次。所以我希望这些单词按照它们出现在数组中的顺序出现。我知道这非常简单,但不能让我的生活让这段代码发挥作用:

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

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

我非常感谢任何建议/指示

非常感谢

特里

1 个答案:

答案 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