我有此Javascript代码。Javascript循环通过数组无限无效
var headlineStore = [
function headline1(){
//irrelevant code
},
function headline2(){
//irrelevant code
},
function headline4(){
//irrelevant code
},
function headline4(){
//irrelevant code
},
function headline5(){
//irrelevant code
}
]
for(var i = 0; i < headlineStore.length; i++){ //for loop to loop through array named headlineStore
if(i == 4) //if condition to reset the counter once it reaches 5
{
i = 0;
}
(function(i){
setTimeout(function(){
headlineStore[i]();
}, 5000 * i);
}(i)); //Will load each function in the array with timeout increments
}
我在这里是一个循环,通过充满函数的数组循环。在每次迭代中,数组中的一个函数将被检索并按时间间隔执行。
我想要的是,在检索到最后一个函数之后,它会从第一个函数开始再次遍历数组,并将无限次地执行此操作。
我试过的是在计数器达到4时重置计数器,但它会离开循环并继续执行,然后出于某种原因页面无响应。
你正在做的不对..尝试改变,你必须使用* * setInterval的逻辑,而不是*的* –
我几乎别想这个代码,而我的头asploding。 –
这种方法将非常迅速地创建数百万个定时器并耗尽可用资源。我怀疑这是一个要求。 – Tibrogargan