Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一旦数组的索引大于长度,如何使其恢复为0_Javascript_Html - Fatal编程技术网

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