1. 程式人生 > >js中間隔一段時間列印陣列中的值

js中間隔一段時間列印陣列中的值

間隔一段時間列印陣列中的一個值

在我們的實際操作中,時常會遇到這樣一個問題,比如:有一個數組 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);