我有以下javascript代码:
nback.lightElement = function(index) {
var letterArray = new Array('Lorem', 'Ipsum' , 'Dolor', 'Est');
var r = Math.floor(Math.random()*4);
var letter = letterArray[r];
nback.numbers[index] = letter;
nback.numbers.innerHTML = letter;
nback.litCell = letter;
nback.current = letter;
nback.previous.push(nback.current);
};
nback.startGame = function() {
nback.round += 1;
nback.updateRound();
nback.blink_count = 0;
// Make a new game
nback.queue = new Queue();
for (i = 0; i < BLINKS; i++) {
// Populate with random data, less fun than created games
// but this is way easier to program.
nback.queue.queue(Math.floor(Math.random() * 1));
}
// Run the game loop every TIME_BETWEEN_ROUNDS
nback.intervalId = window.setInterval(nback.next, TIME_BETWEEN_BLINKS);
};
这为letterArray
的{{1}}毫秒(例如1000)提供了一个随机字输出。该单词显示为1000毫秒,消失,另一个单词随机出现。这会循环TIME_BETWEEN_BLINKS
- 次。
现在我不希望它从BLINKS
中选择随机单词(letterArray
是我主要关心的问题之一)。它应该一个接一个地展示它们。我尝试了很多不同的approches(主要是各种循环),但仍然无法使其工作。大部分时间我都试过循环,我得到了“未定义”(而不是实际的单词)或者什么都没有(空白)。
我使用https://github.com/chuckha/N-back作为参考。
非常感谢帮助。
答案 0 :(得分:1)
您可以使用在函数外部初始化的数组的索引。下面是一些代码,每当调用lightElement函数时,它都会从数组中提供下一个单词。它也包裹着。
var letterArrayIndex=0;
nback.lightElement = function(index) {
var letterArray = new Array('Lorem', 'Ipsum' , 'Dolor', 'Est');
var letter = letterArray[letterArrayIndex];
letterArrayIndex = (letterArrayIndex+1) % letterArray.length;
nback.numbers[index] = letter;
nback.numbers.innerHTML = letter;
nback.litCell = letter;
nback.current = letter;
nback.previous.push(nback.current);
};