返回数组中项目长度总和的函数运行速度更快,首先映射到数组上,然后减少

返回数组中项目长度总和的函数运行速度更快,首先映射到数组上,然后减少

问题描述:

我认为如果我想总结数组中元素的长度,可以使用一个简单的arr.join(''' ).length将比在数组上映射更快,然后减少总和。有关为什么映射和缩减比加入更快的想法?返回数组中项目长度总和的函数运行速度更快,首先映射到数组上,然后减少

在这里发帖 https://jsperf.com/join-vs-map-reduce

+0

你试过吗?arr.reduce((r,el)=> r + el.length,0)'?嘿,他们正在谈论5%,这是浏览器的依赖,所以你为什么关心? –

+0

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

+0

Theres没有任何理解。这是由于一些js引擎深深地嵌套代码,没有人能够给出准确的答案。 –

的jsperf链接加入字符串数组将涉及构建新的字符串,可能是多个中间串,只能算自己到底长。

映射和减少只涉及计数和算术,这大概比加入字符串时涉及的内存分配和复制更快。