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()
行来显示这一点。