迴圈遍歷陣列的次數會受陣列變化的影響嗎?

2022-09-13 18:57:11 字數 1853 閱讀 8380

在檢視mdn文件中array.prototype.filter()時,看到這樣一段話:

測試 1

var arr = [1,2,3];

var flag = 0;

arr.filter(function(val)

console.log(val); /*每次輸出傳給callback函式的元素*/

console.log('當前陣列:' + arr); /*每次輸出當前的陣列*/

});

輸出

可以看出,4雖然被加入到了陣列中,但並未被訪問

測試2

var arr = [1,2,3,4,5,6];

arr.filter(function(val,index)

console.log('引數:' +val);

console.log('當前陣列:' + arr);

});

arr[4]被改變,訪問到的值為改變後的值;arr[5]被刪除,因此沒有被callback訪問只進行了5次輸出

先看看簡單的for迴圈
var arr = [1,2,3,4];

試試foreach()迴圈

與filter()的描述相同,不過最後一句提到:

自己測試一下

mdn例子

刪除兩個元素

簡單對比可看出,刪除了幾個元素,就有幾個當前元素後的元素被跳過,可以簡單的理解為遍歷時的參照為元素的下標,無論元素是否移動,下乙個始終訪問的是當前元素下標+1的元素

for迴圈的使用 遍歷陣列

一 迴圈結構的4個要素 初始化條件 迴圈條件 迴圈體 迭代條件 二 for迴圈的結構 for 執行過程 練習1 運用for迴圈輸出100個helloworld class test 練習2 遍歷100以內的偶數 class test 練習3 遍歷100以內的偶數,並輸出所有偶數之和 class te...

迴圈遍歷陣列方法

迴圈遍歷陣列方法總結 1 while迴圈語句 while 條件表示式 2 do while迴圈語句 dowhile 條件表示式 while和do.while區別 while是先判斷條件是否成立再執行迴圈體 do.while是先執行一次迴圈再判斷條件是否成立 do.while迴圈體中至少被執行一次3 ...

js迴圈遍歷陣列的方式

最近在寫前端 裡面經常涉及到陣列的迴圈取值。這裡簡單總結下前端中陣列遍歷的四種方式 假設有如下陣列 members,每個陣列元素是乙個字典 map,要遍歷陣列列印每個memberid的值。var members 通過陣列下標方式訪問,比較通用的方法 for var index 0 index mem...