所以我有一个数组,数组的每个单元格都包含一个特定的函数。
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);
但不确定这是否有效。任何对此的帮助将不胜感激。
最佳答案
您已经很接近了,但要“链接”函数,您需要实际存储返回值,以便可以重复使用它们:
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));
关于javascript - 如何使用自定义函数操作数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100862/