2013-06-30 273 views
3

第二循環後需要3秒延遲。地方被註釋掉了。請求幫助。需要Javascript循環延遲

var x = [[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]; 
var j=indx=''; 
var n = 7; 
var slice = j= indx=''; 
for (slice = 0; slice < 2 * n - 1; ++slice) { 
    var z = slice < n ? 0 : slice - n + 1; 
    for (j = z; j <= slice - z; ++j) { 
     indx = x[j][slice - j]-1; 
     console.log(indx); 
    } 
    //window.setTimeout("", 1000); 
    //i need delay here.---------------------- 
} 

回答

1

使用setInterval(callback, time)。這與setTimeout相同,但函數將被永遠調用。
clearInterval應使用您的間隔ID來調用以停止執行。
setInterval函數返回該ID

var intervalId = setInterval(function(){ 
    var z = slice < n ? 0 : slice - n + 1; 
    for (j = z; j <= slice - z; ++j) { 
     indx = x[j][slice - j]-1; 
     console.log(indx); 
    } 
    if(++slice >= 2*n-1) 
     clearInterval(intervalId); 
}, 3000);