陣列遍歷方法
陣列遍歷方法
1.for迴圈
使用臨時變數,將長度快取起來,避免重複獲取陣列長度,當陣列較大時優化效果才會比較明顯。
1 2 3 |
|
2.foreach迴圈
遍歷陣列中的每一項,沒有返回值,對原陣列沒有影響,不支援IE
1 2 3 4 5 6 |
|
3.map迴圈
有返回值,可以return出來
map的回撥函式中支援return返回值;return的是啥,相當於把陣列中的這一項變為啥(並不影響原來的陣列,只是相當於把原陣列克隆一份,把克隆的這一份的陣列中的對應項改變了);
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 |
|
4.forof遍歷
可以正確響應break、continue和return語句
1 2 3 |
|
5.filter遍歷
不會改變原始陣列,返回新陣列
1 2 3 4 5 |
|
轉為ES5
1 2 3 |
|
1 2 3 |
|
6.every遍歷
every()是對陣列中的每一項執行給定函式,如果該函式對每一項返回true,則返回true。
1 2 3 4 5 |
|
7.some遍歷
some()是對陣列中每一項執行指定函式,如果該函式對任一項返回true,則返回true。
1 2 3 4 5 6 |
|
8.reduce
reduce()
方法接收一個函式作為累加器(accumulator),陣列中的每個值(從左到右)開始縮減,最終為一個值。
1 |
|
reduce
接受一個函式,函式有四個引數,分別是:上一次的值,當前值,當前值的索引,陣列
1 2 3 |
|
reduce
還有第二個引數,我們可以把這個引數作為第一次呼叫callback
時的第一個引數,上面這個例子因為沒有第二個引數,所以直接從陣列的第二項開始,如果我們給了第二個引數為5,那麼結果就是這樣的:
1 2 3 |
|
第一次呼叫的previousValue
的值就用傳入的第二個引數代替,
9.reduceRight
reduceRight()
方法的功能和reduce()
功能是一樣的,不同的是reduceRight()
從陣列的末尾向前將陣列中的陣列項做累加。
reduceRight()
首次呼叫回撥函式callbackfn
時,prevValue
和 curValue
可以是兩個值之一。如果呼叫 reduceRight()
時提供了 initialValue
引數,則 prevValue
等於 initialValue
,curValue
等於陣列中的最後一個值。如果沒有提供 initialValue
引數,則 prevValue
等於陣列最後一個值, curValue
等於陣列中倒數第二個值。
1 2 3 4 5 |
|
回撥將會被呼叫四次,每次呼叫的引數及返回值如下:
如果提供一個初始值initialValue
為5
:
1 2 3 4 5 |
|
回撥將會被呼叫五次,每次呼叫的引數及返回的值如下:
同樣的,可以對一個陣列求和,也可以使用reduceRight()
方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
10.find
find()方法返回陣列中符合測試函式條件的第一個元素。否則返回undefined
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 7 |
|
ES6方法
1 |
|
11.findIndex
對於陣列中的每個元素,findIndex 方法都會呼叫一次回撥函式(採用升序索引順序),直到有元素返回 true。只要有一個元素返回 true,findIndex 立即返回該返回 true 的元素的索引值。如果陣列中沒有任何元素返回 true,則 findIndex 返回 -1。
findIndex 不會改變陣列物件。
1 2 |
|
1 2 |
|
12.keys,values,entries
ES6 提供三個新的方法 —— entries(),keys()和values() —— 用於遍歷陣列。它們都返回一個遍歷器物件,可以用for...of迴圈進行遍歷,唯一的區別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
相關文章
- java陣列遍歷的方法Java陣列
- 陣列遍歷陣列
- 遍歷陣列的幾種方法陣列
- 遍歷陣列物件陣列物件
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- 遍歷物件和陣列的方法總結物件陣列
- 遍歷陣列和物件的方法都有哪些?陣列物件
- JS中陣列的遍歷方法(3種)JS陣列
- js 遍歷陣列方式JS陣列
- 遍歷陣列的常用方法forEach,filter,map等陣列Filter
- go語言中遍歷陣列的方法有哪些Go陣列
- 在PHP中陣列遍歷的三種方法PHP陣列
- JavaScript遍歷陣列詳解JavaScript陣列
- jquery裡遍歷普通陣列和多維陣列的方法及例項jQuery陣列
- JS中陣列與物件的遍歷方法例項JS陣列物件
- JS陣列方法總覽及遍歷方法耗時統計JS陣列
- JS陣列遍歷和獲取陣列最值JS陣列
- php手冊 php陣列的遍歷有哪幾種方式?php陣列如何遍歷?PHP陣列
- php 陣列遍歷奇怪現象PHP陣列
- JavaScript 的 4 種陣列遍歷方法: for VS forEach() VS for/in VS for/ofJavaScript陣列
- 有關js各種陣列遍歷JS陣列
- JS中遍歷陣列、物件的方式JS陣列物件
- php陣列原理遍歷原理揭祕PHP陣列
- JavaScript遍歷陣列每一個元素JavaScript陣列
- 遍歷PHP陣列的6種方式PHP陣列
- 利用c:forEach標籤遍歷陣列陣列
- java陣列如何遍歷全部的元素Java陣列
- c++遍歷陣列的多種方式C++陣列
- 前端技巧:遍歷陣列都有哪些方式呢?前端陣列
- 陣列記憶體地址解讀及二維陣列的遍歷陣列記憶體
- JS中陣列遍歷方法foreach,filter,some,every,map方法介紹與總結JS陣列Filter
- jQuery遍歷array陣列元素程式碼例項jQuery陣列
- php陣列中常用的多種遍歷方式PHP陣列
- PHP二維關聯陣列的遍歷方式PHP陣列
- 陣列的三種宣告方式總結、多維陣列的遍歷、Arrays類的常用方法總結陣列
- 建立X個任意元素陣列並且可以遍歷的的一個方法陣列
- java8 對list集合中的物件遍歷,重新賦值兩種方法,遍歷某個屬性返回陣列Java物件賦值陣列
- 全面解析Js陣列遍歷對原陣列的影響及返回值JS陣列