for :for循環沒有額外的函數調用棧和上下文,所以它的實現是最簡單的。
forEach:對於ForEach,它的函數簽名是這樣的。
它包含參數和上下文,這影響了它這次的性能。
Map :map最慢是因為它會返回壹個新的數組,數組的創建和賦值會導致內存空間的分配,帶來更大的性能開銷。如果映射嵌套在循環中,會帶來更多不必要的內存消耗。
簡單來說:
當妳的循環不需要返回值(不應該)也不需要改變數據(雖然允許回調改變),比如妳只是想用這個遍歷做點什麽,那麽妳可以選擇foreach
當妳需要改變數據值或鏈式調用時,那麽使用map
雖然地圖確實可以實現妳想要的壹些操作,比如:
而實際上它更適合於fore或forEach。
如MDN,Array.prototype.map()中所述:
所以在今天的eslint中,盡量不要忽略任何暗示。