我是JavaScript新手,但有其他编程语言的经验。
我很难用JavaScript设计一个简单的任务:
鉴于一系列字母,我想随机选择9个字母,这些字母会一个接一个地快速打印出来。然后,我想显示两个用户将向左或向右选择的随机字母(以选择最近在列表中出现的字母)。然后在选择之后,随机挑选另外9个字母。
我对如何使字母快速打印而不是一起打印感到茫然......?我也希望这次运行10次。有没有办法用jQuery做到这一点?
这是我到目前为止所做的:
var stimuli = new Array('B','C', 'D', 'F', 'G', 'H')
var num_trials = 10;
function trials() {
while (num_trials > 1) {
//fills array with random letters
var random = new Array()
for (var i = 0; i < 9; i++) {
//randomly picks 9
random[i] = stimuli[Math.floor(Math.random() * stimuli.length)]
}
//from "random" array,displays stimuli
for (var i = 0; i < random.length; i++) {
document.write(random[i]);
}
document.write("<br>");
//randomly picks two letters from random array to display
document.write(random[Math.floor(Math.random() * random.length)]+ " , ")
document.write(random[Math.floor(Math.random() * random.length)])
//user selects, left, right or up
num_trails--;
}
}
答案 0 :(得分:0)
要逐个打印字母,您必须使用setInterval
或setTimeout
。我使用setInterval
,用以下内容替换当前的for循环:
var i = 0;
var printer = window.setInterval(function(){
if (i < random.length) {
document.write(random[i]);
} else {
window.clearInterval(printer);
/* Here goes the rest of your code after the for loop, eg.
document.write("<br>");
document.write(random[Math.floor(Math.random() * random.length)]+ " , ");
etc. */
return;
}
i++;
}, 300);
以上代码应依次打印每个字母。
当i >= random.length
时,它将在for循环之后运行所有其他代码(for循环已退出)。