所以我有一个数组,每个数组包含一个特定的函数。
var randomly = [
function(a) { return a * a - a; },
function(a) { return (a - 2) * (a - 1) * (a - 1); },
function(a) { return a * a + a; },
function(a) { return a % 3; }
];
我正在创建一个函数,它接受整个数组的输入值(a)并单独遍历每个数组单元,从而解决了这个问题。但是,该函数的结果成为下一个函数的输入值。所以初始输入值只对第一个函数有用,下一个函数的输入值将是前一个函数的结果。
为此,我创建了一个for循环......
var theFunction = function (input, queue){
for (var i = 0; i < queue.length; i++){
queue[i](input);
}
所以,这就是我被困的地方......
如何调用特定数组和输入值?我使用queue[i](input);
但不确定这是否有效。对此有任何帮助将非常感激。
答案 0 :(得分:1)
你很接近,但为了“链接”这些功能,你需要实际存储返回值,这样你就可以重复使用它们了:
var theFunction = function (input, queue) {
var result = input;
for (var i = 0; i < queue.length; i++)
result = queue[i](result);
return result;
}
var randomly = [
function(a) { return a * a - a; },
function(a) { return (a - 2) * (a - 1) * (a - 1); },
function(a) { return a * a + a; },
function(a) { return a % 3; }
];
var theFunction = function (input, queue) {
var result = input;
for (var i = 0; i < queue.length; i++)
result = queue[i](result);
return result;
}
console.log(theFunction(4, randomly));