在javascript中重复循环

时间:2014-08-12 19:30:29

标签: javascript loops

我希望以10毫秒的步数连续三次从0到199计数,例如0 1 2 ... 198 199 0 1 2 .... 198 199 0 1 2 ....第一次运行正在运行罚款:

function count() {
    time = 0;
    for (var i = 0; i < 200; i++) {
        time += 10;
        setTimeout(function(j) {
            return function() {
                console.log(j);
            }
        }(i), time);
    };
};

count();

但是在调用函数三次时,我没有得到所需的结果,如

for (var i = 0; i < 3; i++) {
  count();
}

对我来说,正确的方法是什么?

2 个答案:

答案 0 :(得分:2)

我想也应该定时:

for (var i = 0; i < 3; i++) {
  setTimeout(animateRio /*or do you mean count?*/, i*2000);
}

答案 1 :(得分:0)

您不需要安排所有自己的超时,setInterval可以在每个单位时间调用一个函数。因此,创建一个每10毫秒运行一次的间隔。然后添加一个循环计数器并使用一些模运算。

var time = -1, 
   interval, 
   loop = 3; 

interval = setInterval(function() {
    time += 1;

    if(time % 200 === 0) {
        loop--;
    }

    if(loop < 0){
        clearInterval(interval);
        return;
    }    
    console.log(time % 200);
}, 10);

JSFiddle