Javascript 一旦数组的索引大于长度,如何使其恢复为0
Javascript 一旦数组的索引大于长度,如何使其恢复为0,javascript,html,Javascript,Html,课堂提问{ 建造师(问题、ansA、ansB、ansC、ansD、答案){ 这个问题=问题; this.ansA=ansA; this.ansB=ansB; this.ansC=ansC; this.ansD=ansD; 这个答案=答案; } 检查(已选择,回答){ 如果(选择===回答){ console.log('Well-Done') } } }; var questionOne=新问题(“克里特在哪里?”、“巴卡罗纳”、“希腊”、“都比”、“爱尔兰”、“希腊”); var questio
课堂提问{
建造师(问题、ansA、ansB、ansC、ansD、答案){
这个问题=问题;
this.ansA=ansA;
this.ansB=ansB;
this.ansC=ansC;
this.ansD=ansD;
这个答案=答案;
}
检查(已选择,回答){
如果(选择===回答){
console.log('Well-Done')
}
}
};
var questionOne=新问题(“克里特在哪里?”、“巴卡罗纳”、“希腊”、“都比”、“爱尔兰”、“希腊”);
var questionTwo=新问题(“Liverppool赢得冠军联赛多少次?”、“1”、“4”、“6”、“5”、“6”);
var i=0;
常量数组问题=[问题一,问题二];
//加载时显示问题数组的第一个索引
document.getElementById('question')。innerHTML=arrayQuestion[i]。问题;
document.getElementById('A').innerHTML=arrayQuestion[i].ansA;
document.getElementById('B').innerHTML=arrayQuestion[i].ansB;
document.getElementById('C').innerHTML=arrayQuestion[i].ansC;
document.getElementById('D')。innerHTML=arrayQuestion[i]。ansD;
//“下一步”按钮,在数组中循环并显示当前问题。
const n=document.getElementById('n');
n、 addEventListener(“单击”,下一步);
函数next(){
如果(i>arrayQuestion.length){
i==0;
}
i++;
document.getElementById('question')。innerHTML=arrayQuestion[i]。问题;
document.getElementById('A').innerHTML=arrayQuestion[i].ansA;
document.getElementById('B').innerHTML=arrayQuestion[i].ansB;
document.getElementById('C').innerHTML=arrayQuestion[i].ansC;
document.getElementById('D')。innerHTML=arrayQuestion[i]。ansD;
};
函数prev(){
我--;
document.getElementById('question')。innerHTML=arrayQuestion[i]。问题;
document.getElementById('A').innerHTML=arrayQuestion[i].ansA;
document.getElementById('B').innerHTML=arrayQuestion[i].ansB;
document.getElementById('C').innerHTML=arrayQuestion[i].ansC;
document.getElementById('D')。innerHTML=arrayQuestion[i]。ansD;
}
html{
框大小:边框框;
字号:200;
}
*,*:之前,*:之后{
框大小:继承;
}
钮扣{
背景:蓝色;
填料:1.2米;
边缘:1.2米;
}
P
N
您可以使用%
模运算
function safeGet(array, i) {
return array[i % array.length];
}
这样使用:
safeGet(['a', 'b', 'c'], 0); // 'a'
safeGet(['a', 'b', 'c'], 1); // 'b'
safeGet(['a', 'b', 'c'], 2); // 'c'
safeGet(['a', 'b', 'c'], 3); // 'a'
safeGet(['a', 'b', 'c'], 4); // 'b'
safeGet(['a', 'b', 'c'], 5); // 'c'
safeGet(['a', 'b', 'c'], 6); // 'a'
if(i>arrayQuestion.length){
Off一个错误。arr[arr.length]
也将是未定义的
,数组是零索引的,我知道它们是零索引的,我已将其设置为0,我的函数会增加它,但当它达到极限时,我会得到越界错误,这是问题的关键,我不知道使它恢复的语法。你几乎有了它,你只有一个off by一个错误否,t问题是你的if(i>arrayQuestion.length){
由于测试错误而延迟了一次迭代。如果你在增量后重置,你需要在i==arrayQuestion.length
时重置,而不是在i>arrayQuestion.length