3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
他們是不一樣的。讓我解釋一下區(qū)別。
forEach:這會(huì)遍歷列表,并對每個(gè)列表成員應(yīng)用一些有副作用的操作(例如:將每個(gè)列表項(xiàng)保存到數(shù)據(jù)庫)
map:這會(huì)遍歷一個(gè)列表,轉(zhuǎn)換該列表的每個(gè)成員,然后返回與轉(zhuǎn)換后的成員大小相同的另一個(gè)列表(例如:將字符串列表轉(zhuǎn)換為大寫)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
Array.forEach “每個(gè)數(shù)組元素執(zhí)行一次提供的函數(shù)。”
Array.map “創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是對該數(shù)組中的每個(gè)元素調(diào)用一個(gè)提供的函數(shù)?!?/p>
因此,forEach實(shí)際上不返回任何東西。它只是為每個(gè)數(shù)組元素調(diào)用函數(shù),然后就完成了。因此,您在該調(diào)用函數(shù)中返回的所有內(nèi)容都將被簡單丟棄。
另一方面,map將類似地為每個(gè)數(shù)組元素調(diào)用該函數(shù),但不是丟棄其返回值,而是捕獲它并構(gòu)建這些返回值的新數(shù)組。
這也意味著您可以map在任何使用位置使用它,forEach但是仍然不應(yīng)該這樣做,因此您不會(huì)出于任何目的而收集返回值。如果您不需要它們,不收集它們會(huì)更有效率。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
+ ---------------- + -------------------------------- ----- + --------------------------------------- +
| | foreach | 地圖|
+ ---------------- + -------------------------------- ----- + --------------------------------------- +
| 功能| 對每個(gè)|執(zhí)行給定的操作。對|執(zhí)行給定的“轉(zhuǎn)換”
| | 數(shù)組的元素| 每個(gè)元素的“副本” |
+ ---------------- + -------------------------------- ----- + --------------------------------------- +
| 返回值 返回未定義 返回轉(zhuǎn)換后的新數(shù)組|
| | | 保留原始數(shù)組的元素|
| | | 不變
+ ---------------- + -------------------------------- ----- + --------------------------------------- +
| 首選| 執(zhí)行非轉(zhuǎn)換,如| 獲取包含|的輸出的數(shù)組
| 使用場景| 在每個(gè)元素上進(jìn)行處理。| 每個(gè)元素上完成的一些處理|
| 和示例 | 的數(shù)組。|
| | 例如,將所有元素保存在|中。|
| | 數(shù)據(jù)庫| 例如,獲得|的數(shù)組
| | | |中每個(gè)字符串的長度
| | | 數(shù)組|
+ ---------------- + -------------------------------- ----- + --------------------------------------- +
添加回答
舉報(bào)