2017-10-12 67 views
0

我認爲如果我想總結數組中元素的長度,可以使用一個簡單的arr.join(''' ).length將比在數組上映射更快,然後減少總和。有關爲什麼映射和縮減比加入更快的想法?返回數組中項目長度總和的函數運行速度更快,首先映射到數組上,然後減少

在這裏發帖 https://jsperf.com/join-vs-map-reduce

+0

你試過嗎?arr.reduce((r,el)=> r + el.length,0)'?嘿,他們正在談論5%,這是瀏覽器的依賴,所以你爲什麼關心? –

+0

我只是想明白。我知道只是減少 - 上面的代碼片段更快。 –

+0

Theres沒有任何理解。這是由於一些js引擎深深地嵌套代碼,沒有人能夠給出準確的答案。 –

回答

0

的jsperf鏈接加入字符串數組將涉及構建新的字符串,可能是多箇中間串,只能算自己到底長。

映射和減少只涉及計數和算術,這大概比加入字符串時涉及的內存分配和複製更快。