点差算子是否可以优化为O(N)

时间:2019-04-25 22:43:24

标签: javascript optimization

参考该comment,我想知道以下代码中的散布运算符是否可以优化为O(n)?

["a","b","c"].reduce( (o,c,i)=>({...o,[c]:i}), {})

GCC将其编译为以下内容。

["a","b","c"].reduce(function(a,b,c){var d={};return Object.assign({},a,(d[b]=c,d))},{})

由于该函数是在reduce中执行的,并且没有引用传递给初始化程序,因此应该有可能通过数据流分析来对此进行推理。

这是一个纯函数,应该高度优化。

v8是否足够聪明,可以进行此类优化? -从语义上讲,有很大的不同。

0 个答案:

没有答案