2014-11-22 86 views
-2

嘿,我试图在限定时间内循环for循环。通过for循环及时增加值

的代码是

var l = 0; 
var m = setInterval(function(){ for(i=0;i<5;i++) { console.log(i); } }, l++); 
if(l == 500) { 
clearInterval(m); 
} 

正如我们都知道的代码for(i=0;i<5;i++) { console.log(i); }打印0,1,2,3,4 ..我只想价值递增每次当它到达500毫秒停止..

当我运行增量上面的代码在达到500个时间限制时不会停止。

任何帮助,将不胜感激

+0

你不是内部的for循环,这意味着在间隔定时器每1ms运行后,设L ++的间隔时间。 – 2014-11-22 16:46:05

+0

@ Bhojendra-C-LinkNepal - C-Link尼泊尔看到我只是想停止循环,当它达到500 ..如果你知道 – lovemysql 2014-11-22 16:54:50

+0

for(i = 0; i <500; i ++) – 2014-11-22 16:56:32

回答

0

Actualy升的最大值为4,因此它永远到不了500 ...

var l = 0; 
var m = setInterval(function(){ 

    (l < 100) ? l++ : stop(); 

}, 100); 

function stop(){ 
    clearInterval(m); 
} 
+0

在问题中l的最大值实际上是1,而不是4,并且此代码将运行每十分之一秒和最后10秒。 – 2014-11-22 17:39:58

+0

你是对的,我的不好,我的价值将是4)) – Smile0ff 2014-11-22 17:45:02

1

您的信用变量递增1,一次,并用于区间长度。在你的例子中它将永远停留在1。

要每100毫秒运行一次你的循环,持续500毫秒,你需要做这样的事情。不知道这是否是你正在寻找的结果,但希望有所帮助。注意间隔长度现在是100

var l = 0; 
 

 
var m = setInterval(function() { 
 
    for(var i = 0; i < 5; i++) { 
 
     console.log(i); 
 
    } 
 

 
    l++; 
 
    if (l === 5) { 
 
     clearInterval(m); 
 
    } 
 
}, 100);

+0

你可以提供一些代码示例,使其工作 – lovemysql 2014-11-22 16:55:13

+0

我编辑了我的答案。这将每十分之一秒运行5次。不知道这是你之后,但在JavaScript中,浏览器之间的时间不一致。一般来说,选择超过50毫秒的时间间隔将更可靠,但并不完美。 – 2014-11-22 17:59:06