js中間隔一段時間列印陣列中的值
阿新 • • 發佈:2019-01-04
間隔一段時間列印陣列中的一個值
在我們的實際操作中,時常會遇到這樣一個問題,比如:有一個數組 arr = [1,2,3,4,5]; 要求間隔1s中列印陣列中的一個值,與停止1s在列印陣列中的值
先列舉兩個停止1s列印陣列中的值
利用for迴圈和定時器來實現
var arr = [1,2,3,4,5];
for(var i = 0; i < arr.length; i++){
(function(a){ //因為setTimeout非同步執行的特性,所以定義一個自執行函式,先把i的值傳入進來,避免在執行setTimeout的時候i的值變為4。
setTimeout(function(){
console.log(arr[a]);
},1000);
})(i);
}
var arr = [1,2,3,4,5];
for(var i = 0; i < arr.length; i++){
(function(a){
var timer = setInterval(function(){ //注意定義timer的時候,要放在自執行函式中,也是由於setInterval的非同步特性,避免在清除定時器時,清除的是無效的timer
console.log(arr[a]);
clearInterval(timer); //在每次執行完任務時,直接清除掉定時器
},1000);
})(i);
}
上面的兩種方式是間隔1s直接列印陣列中的值,1,2,3,4,5;
下面這種方法則是間隔1s列印陣列中的一個值
var i = 0; //在外面定義一個變數作為判斷的標準
var timer = setInterval(function(){
console.log(arr[i]);
i++;
if (i > arr.length-1){ //因為i++的原因,所以當i的值大於陣列的長度-1的時候,清除定時器
clearInterval(timer);
}
},1000);