古詩詞大全網 - 個性簽名 - for、forEach和map的性能比較

for、forEach和map的性能比較

解釋:性能的比較其實和環境中使用的V8版本有關,這也是為什麽map方法在chrome中比在Node中慢10倍的原因。經過測試(在chrome 62和Node.js v9.1.0環境下):for循環比forEach快1倍,forEach比map快20%左右。

for :for循環沒有額外的函數調用棧和上下文,所以它的實現是最簡單的。

forEach:對於ForEach,它的函數簽名是這樣的。

它包含參數和上下文,這影響了它這次的性能。

Map :map最慢是因為它會返回壹個新的數組,數組的創建和賦值會導致內存空間的分配,帶來更大的性能開銷。如果映射嵌套在循環中,會帶來更多不必要的內存消耗。

簡單來說:

當妳的循環不需要返回值(不應該)也不需要改變數據(雖然允許回調改變),比如妳只是想用這個遍歷做點什麽,那麽妳可以選擇foreach

當妳需要改變數據值或鏈式調用時,那麽使用map

雖然地圖確實可以實現妳想要的壹些操作,比如:

而實際上它更適合於fore或forEach。

如MDN,Array.prototype.map()中所述:

所以在今天的eslint中,盡量不要忽略任何暗示。