Массив функций в JS - PullRequest
       16

Массив функций в JS

0 голосов
/ 05 августа 2020

Как мне создать функцию, которая принимает входные данные, например 13, а затем выполняет все функции в массиве на этом входе и возвращает результат, который в данном случае будет 4

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

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

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Как Дэйв ответил на вопрос, вы можете использовать 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
0 голосов
/ 06 августа 2020

Вы хотите прогнать число и каждый результат через серию функций, которые хранятся в массиве.

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

function runAll(input){
  
  let output = input;
  for (let f of arr) {
    output = f(output)
  }
  
  return output;
}


console.log(runAll(13)) //4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...