js提供了多種遍歷數組的方法,具體使用場景略有區別,在此簡單介紹一下。
一、forEach方法(沒有返回值)
forEach是最簡單、最常用的數組遍歷方法,它提供一個回調函數,可用於處理數組的每一個元素,默認沒有返回值。

以上是個簡單的例子,計算出數組中大於等於3的元素的個數。
回調函數的參數,第一個是處於當前循環的元素,第二個是該元素下標,第三個是數組本身。三個參數均可選。
二、map方法(返回一個數組)
map,從字面上理解,是映射,即數組元素的映射。它提供一個回調函數,參數依次為處於當前循環的元素、該元素下標、數組本身,三者均可選。默認返回一個數組,這個新數組的每一個元素都是原數組元素執行了回調函數之后的返回值。
map方法不改變原數組。


以上是一個簡單的例子,把原數組的每一項乘以自身下標+1的數。
三、filter方法(返回一個數組,數組遍歷函數內部執行 若為true才返回)
filter,過濾,即對數組元素的一個條件篩選。它提供一個回調函數,參數依次為處於當前循環的元素、該元素下標、數組本身,三者均可選。默認返回一個數組,原數組的元素執行了回調函數之后返回值若為true,則會將這個元素放入返回的數組中。
filter方法不改變原數組


以上是一個簡單的例子,篩選出原數組中,自身乘以下標大於等於3的元素。
四、some、every方法(返回布爾值,some當有一個為true時,some方法返回true; every全部為true則為true,否則為false)
some方法和every的用法非常類似,提供一個回調函數,參數依次為處於當前循環的元素、該元素下標、數組本身,三者均可選。
數組的每一個元素都會執行回調函數,當返回值全部為true時,every方法會返回true,只要有一個為false,every方法返回false。當有一個為true時,some方法返回true,當全部為false時,every方法返回false。
some、every方法不改變原數組。


五、reduce方法(將上一次循環時回調函數的返回值作為下一次遍歷循環的初始值,最后將這個結果) ——詳細講解請看 reduce方法詳細講解
reduce方法有兩個參數,第一個參數是一個回調函數(必須),第二個參數是初始值(可選)。回調函數有四個參數,依次為本輪循環的累計值、當前循環的元素(必須),該元素的下標(可選),數組本身(可選)。
reduce方法,會讓數組的每一個元素都執行一次回調函數,並將上一次循環時回調函數的返回值作為下一次循環的初始值,最后將這個結果返回。
如果沒有初始值,則reduce會將數組的第一個元素作為循環開始的初始值,第二個元素開始執行回調函數。
最常用、最簡單的場景,是數組元素的累加(回調函數,初始值為10)、累乘。 (初始值10 )+ 0 + 2+ 6 + 12+ 20=50


reduce方法不改變原數組
六、for of方法
es6新增了interator接口的概念,目的是對於所有數據結構提供一種統一的訪問機制,這種訪問機制就是for of。
即:所有有interator接口的數據,都能用for of遍歷。常見的包括數組、類數組、Set、Map等都有interator接口。


如果想用for of的方法遍歷數組,又想用Index,可以用for of遍歷arr.entries()


關於數組的遍歷方法和使用場景介紹的更加詳細一點,地址戳我
————————————————
版權聲明:本文為CSDN博主「一笑而泯」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42733155/article/details/81145334
