【发布时间】:2018-06-06 09:25:12
【问题描述】:
我有一个有两个功能的类。 Add,将函数添加到数组,以及 Execute,根据其参数执行函数数组。我的代码是:
class LazyEvaluation {
constructor(){
this.functionQueue = []
}
add(fn){
this.functionQueue.push(fn)
return this
}
evaluate(target){
for (let i = 0; i < this.functionQueue.length; i++){
let newArray = target.map(this.functionQueue[i])
return newArray
}
}
}
就目前而言,当我在数组中只有一个函数时,此代码有效。我的问题是只要数组中有多个函数,execute 函数就会为每个函数创建一个新数组。
例如,当functionQueue数组有以下两个函数时:
(function timesTwo(a){ return a * 2 })
(function addOne(a) { return a + 1 })
并且给定执行函数[1, 2, 3]
我需要的输出是[3, 5, 7],但是我得到了[2, 4, 6] 和[2, 3, 4] 的两个独立输出
如何确保执行函数不会为functionQueue中的每个函数创建一个新数组?
【问题讨论】:
标签: javascript arrays