3 回答

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

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

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