同时出现了什么问题,正在遍历数组

What is wrong while, Iterating through the array?

本文关键字:遍历 数组 问题 什么      更新时间:2024-06-30

for循环中,我正在遍历字符串数组,同时更改图像的src,但setTimeout方法无法保持myfun 3000毫秒,因此for循环只需在眨眼之间迭代到数组的最后一个字符串。我哪里错了?

<script>
 function myfunction(){
 var arr = ["mind.jpg","images.jpg","external.jpg"];
 var image = document.getElementById("IMAGE");
 for(var i =0;i<arr.length;i++)
 {
    setTimeout(myfun,3000);      
    image.src = arr[i];
 }
 }   
 function myfun(){
 }
</script>

如果你想制作类似幻灯片的东西,你需要这样做:

function myfunction() {
    var arr = ["mind.jpg","images.jpg","external.jpg"];
    var image = document.getElementById("IMAGE");
    var i = 0;
    function next() {
        image.src = arr[i];
        if(++i === arr.length) {
            i = 0
        }
    }
    setInterval(next, 3000)
}
for (var i = 0; i < arr.length; i++) {
    myfun(i);
}
function myfun(i) {
    setTimeout(function() {
        image.src = arr[i];
    }, 3000 * i);
}

for (var i = 0; i < 5; i++) {
    myfun(i);
}
function myfun(i) {
    setTimeout(function() {
        document.write(i + '<br>');
    }, 1000 * i);
}