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

Javascript 返回数组中项目长度总和的函数运行得更快,首先在数组上进行映射,然后减少,javascript,dictionary,join,reduce,Javascript,Dictionary,Join,Reduce,我认为,如果我想对数组中元素的长度求和,那么简单的arr.join(“”).length将比在数组上映射然后求和缩减更快。有没有想过为什么映射和缩减比加入更快 在这里发布jsperf链接 加入一个字符串数组将涉及构造一个新字符串,可能是多个中间字符串,最后只计算它们的长度 映射和缩减只涉及计数和算术,这大概比连接字符串所涉及的内存分配和复制要快。您是否尝试过arr.reduce((r,el)=>r+el.length,0)?嘿,我们说的是5%,这取决于浏览器,那你为什么在意呢?我只是想理解。我知

我认为,如果我想对数组中元素的长度求和,那么简单的arr.join(“”).length将比在数组上映射然后求和缩减更快。有没有想过为什么映射和缩减比加入更快

在这里发布jsperf链接

加入一个字符串数组将涉及构造一个新字符串,可能是多个中间字符串,最后只计算它们的长度


映射和缩减只涉及计数和算术,这大概比连接字符串所涉及的内存分配和复制要快。

您是否尝试过
arr.reduce((r,el)=>r+el.length,0)
?嘿,我们说的是5%,这取决于浏览器,那你为什么在意呢?我只是想理解。我知道只要减少你上面的代码片段就可以了。没有什么需要理解的。这是由于一些js引擎的代码嵌套很深,没有人能够给出准确的答案。