Javascript 具有不同延迟的setTimeout的循环

Javascript 具有不同延迟的setTimeout的循环,javascript,jquery,Javascript,Jquery,我必须制作一种活动播放列表,其中每个活动都有一个特定的播放时间,下一个活动必须在时间结束后播放,以此类推 目前我正在使用setTimeout函数。现在我需要循环以获取我的事件和时间 我的代码: for(let i = 0; i < playlist.length ; i++){ setTimeout(function(){ $('#ventana').attr({src: playlist[i].url_play}); }, playlist[i]

我必须制作一种活动播放列表,其中每个活动都有一个特定的播放时间,下一个活动必须在时间结束后播放,以此类推

目前我正在使用setTimeout函数。现在我需要循环以获取我的事件和时间

我的代码:

for(let i = 0; i < playlist.length ; i++){
     setTimeout(function(){
           $('#ventana').attr({src: playlist[i].url_play});
     }, playlist[i].time_play*i);                   
}

但时机不对。我怎样才能纠正这个问题呢?

如果你将延迟设置为playlist[I],它确实不起作用。。。它不考虑过去播放列表的延迟,只考虑当前播放列表-乘以其索引

相反,您需要累积不同的延迟,例如在延迟变量中:

for (let i = 0, delay = 0; i < playlist.length ; delay += playlist[i].time_play, i++) {
    setTimeout(function() {
        $('#ventana').attr({src: playlist[i].url_play});
    }, delay);                   
}

你应该复习以了解更多关于提问的知识,这些问题将帮助读者理解你的问题,并增加你获得问题有用答案的机会。对不起,我是新会员。。。我已经做了一些更正