首页 > 解决方案 > 函数式组合比多次迭代慢

问题描述

我正在做一个关于使用地图理解功能组合的基本示例,并且对性能结果感到非常困惑

const doubleIt = (x) => x*2
const render = (x) => `<li>${x}</li>`
const composeRenderAndDouble = function (x) {
    return render(doubleIt(x));
}
const arr = Array(1000).fill(0)

const mergeArraysAndFunctionalManyMaps = (arr) => arr.map(doubleIt).map(render)
const mergeArraysAndFunctionalOneMap = (arr) => arr.map(composeRenderAndDouble)


mergeArraysAndFunctionalManyMaps(arr)// executes in 0.788ms
mergeArraysAndFunctionalOneMap(arr)// executes in 1.184ms

我已经尝试多次运行代码,并且每次多张地图都比一张内部具有功能组合的地图快。

在节点环境(v10)中运行我会假设多个映射会更慢,因为我们在同一个数组上执行多次迭代?

标签: javascriptarraysperformancefunctional-programming

解决方案


推荐阅读