在js中數(shù)組的遍歷循環(huán)是最最常用的方式,經常會將map/forEach/filter/some/every/reduce弄混淆,現(xiàn)在就將上面6個方法總結如下:
filter():返回一個符合func條件的元素數(shù)組
map():返回一個新的Array移袍,每個元素為調用func的結果
forEach():沒有返回值,只是針對每個元素調用func
some():返回一個boolean,判斷是否有元素是否符合func條件
every():返回一個boolean候址,判斷每個元素是否符合func條件
返回值 | 原數(shù)組是否改變 | 傳參 | 參數(shù)的含義 | 使用方式 | |
---|---|---|---|---|---|
filter | 新數(shù)組 | 不改變 | function(currentValue,index,arr){ } | 當前值/索引值/ 對應的數(shù)組 | 對數(shù)組進行過濾 |
map | 新數(shù)組 | 不改變 | function(currentValue,index,arr){ } | 當前值/索引值/ 對應的數(shù)組 | 對數(shù)組進行改變 |
forEach | 無 | 不改變 | function(currentValue,index,arr){ } | 當前值/索引值/ 對應的數(shù)組 | 最簡單的遍歷 |
some | boolean | 不改變 | function(currentValue,index,arr){ } | 當前值/索引值/ 對應的數(shù)組 | |
every | boolean | 不改變 | function(currentValue,index,arr){ } | 當前值/索引值/ 對應的數(shù)組 | |
reduce | 求和 |
這個方法的區(qū)別與聯(lián)系:
filter與map
?①:均是返回的新數(shù)組
?②:改變數(shù)組的時候用map, 想對數(shù)組進行過濾用filter.
forEach
?沒有返回值,是最簡單的遍歷的方式.
some與every
?①:返回的都是boolean類型.
?②:some是有一個符合就是true,every只要有一個是假均是false.
reduce
?求和時使用
具體的還可以看如下的鏈接:
https://blog.csdn.net/cddcj/article/details/70173032
https://blog.csdn.net/github_31392345/article/details/48631067