Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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 如何通过数组上的第二个索引_Javascript_Html_Arrays_Loops - Fatal编程技术网

Javascript 如何通过数组上的第二个索引

Javascript 如何通过数组上的第二个索引,javascript,html,arrays,loops,Javascript,Html,Arrays,Loops,我尝试遍历一个图像数组,分别显示每个图像,并使用按钮移动到下一个图像。但是,当点击按钮时,它会移动到下一个图像上,但在第二个图像之后,它不会移动到第三个图像上,等等。有人能找到环路卡住的地方吗 函数changeImage(){ var imageArray=[“/Users/rate/images/images/practice/sun1.jpg”、“/Users/rate/images/images/practice/sun2.jpg”、“/Users/rate/images/practic

我尝试遍历一个图像数组,分别显示每个图像,并使用按钮移动到下一个图像。但是,当点击按钮时,它会移动到下一个图像上,但在第二个图像之后,它不会移动到第三个图像上,等等。有人能找到环路卡住的地方吗

函数changeImage(){
var imageArray=[“/Users/rate/images/images/practice/sun1.jpg”、“/Users/rate/images/images/practice/sun2.jpg”、“/Users/rate/images/practice/sun3.jpg”、“/Users/rate/images/practice/sun4.jpg”]
var currentImage=0;
currentImage+=1;
如果(currentImage>=imageArray.length){
currentImage=0;
}
document.getElementById(“mainImage”).src=imageArray[currentImage]
}

应用程序图标?

你觉得这个应用程序图标在美学上令人愉悦吗
强烈同意 1. 2. 3. 4. 5. 非常不同意

首先,范围。您的
currentImage
应该全局声明,否则它将始终从0开始。其次,数组中最后一个元素的索引等于数组长度减1,因此需要对照
imageArray.length-1检查
currentImage

var currentImage=0;
函数changeImage(){
var imageArray=[“/Users/rate/images/images/practice/sun1.jpg”、“/Users/rate/images/images/practice/sun2.jpg”、“/Users/rate/images/practice/sun3.jpg”、“/Users/rate/images/practice/sun4.jpg”]
如果(currentImage>=imageArray.length-1){
currentImage=0;
}否则{
currentImage+=1;
}
document.getElementById(“mainImage”).src=imageArray[currentImage]
console.log(currentImage);
}


你觉得这个应用程序图标在美学上令人愉悦吗
强烈同意 1. 2. 3. 4. 5. 非常不同意

您已在事件处理程序中将
currentImage
声明为局部变量。每次调用事件处理程序时,变量都将重新初始化为零。把它移到处理器外面。很高兴能帮助你!为什么答案不能反映文本中描述的已更改的变量范围?范围检查是错误的。原始版本在这方面是正确的,此版本不会显示最后一个图像。是的,它似乎从未到达阵列中的最后一个图像?它确实到达。我添加了一个
console.log()
行来显示这一点。