Я использую функцию сокращения для массива и хочу передать ей внешний аргумент (здесь some_variable): const myCallback = (x, y) => {return x + y * some_variable} function myFunction () { ...

0
mdegoys 6 Янв 2021 в 15:40

1 ответ

Лучший ответ

Верните функцию редуктора из myCallback, используя дополнительный параметр из закрытие:

const myCallback = something => {
  return (x, y) => x + y * something;
  //     ^ return function |
  //                       ^ something is known from the closure
};

console.log([1, 2, 3].reduce(myCallback(0), 0));
//                                      ^ 'something'
console.log([1, 2, 3].reduce(myCallback(1), 0));
console.log([1, 2, 3].reduce(myCallback(2), 0));
3
KooiInc 6 Янв 2021 в 14:43