在js中數(shù)組的遍歷循環(huán)是最最常用的方式,經(jīng)常會將map/forEach/filter/some/every/reduce弄混淆,現(xiàn)在就將上面6個方法總結(jié)如下:
filter():返回一個符合func條件的元素數(shù)組
map():返回一個新的Array,每個元素為調(diào)用func的結(jié)果
forEach():沒有返回值,只是針對每個元素調(diào)用func
some():返回一個boolean,判斷是否有元素是否符合func條件
every():返回一個boolean,判斷每個元素是否符合func條件
| 返回值 | 原數(shù)組是否改變 | 傳參 | 參數(shù)的含義 | 使用方式 | |
|---|---|---|---|---|---|
| filter | 新數(shù)組 | 不改變 | function(currentValue,index,arr){ } | 當(dāng)前值/索引值/ 對應(yīng)的數(shù)組 | 對數(shù)組進(jìn)行過濾 |
| map | 新數(shù)組 | 不改變 | function(currentValue,index,arr){ } | 當(dāng)前值/索引值/ 對應(yīng)的數(shù)組 | 對數(shù)組進(jìn)行改變 |
| forEach | 無 | 不改變 | function(currentValue,index,arr){ } | 當(dāng)前值/索引值/ 對應(yīng)的數(shù)組 | 最簡單的遍歷 |
| some | boolean | 不改變 | function(currentValue,index,arr){ } | 當(dāng)前值/索引值/ 對應(yīng)的數(shù)組 | |
| every | boolean | 不改變 | function(currentValue,index,arr){ } | 當(dāng)前值/索引值/ 對應(yīng)的數(shù)組 | |
| reduce | 求和 |

filter

map

forEach

some
這個方法的區(qū)別與聯(lián)系:
filter與map
?①:均是返回的新數(shù)組
?②:改變數(shù)組的時候用map, 想對數(shù)組進(jìn)行過濾用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