首页 > 解决方案 > JS中的函数数组

问题描述

如何创建一个接受输入的函数,例如13,然后在该输入上执行数组中的所有函数并返回输出,4在这种情况下

array = [
  function(a){ return a * 2 },
  function(a){ return a + 1000},
  function(a){ return a % 7 }
]

function f(array){
  console.log(array);
}

标签: javascriptnode.jsarraysfunctionreturn-value

解决方案


正如戴夫在问题中回答的那样,您可以使用它reduce来实现这一点:

const runFunctionSequence = (sequence, input) => sequence.reduce((accumulatedOutput, fun) => fun(accumulatedOutput), input);

const arr = [
  function(a){ return a * 2 },
  function(a){ return a + 1000},
  function(a){ return a % 7 }
];

console.log(runFunctionSequence(arr, 13)); // -> 4


推荐阅读