@fif

Вторые скобки у функции?

Только начинаю развиваться, извиняйте за глупые вопросы. У меня есть такая функция
function getComposition(func1, func2) {
}

Функция должна вызываться так getComposition(Math.sin, Math.asin)(x)
Мне передаётся например func1 это Math.sin а func2 это Math.asin. x таким и останется, то есть его и передадут x.
Вот вопросы:
1. Как мне работать с иксом
2. Как мне вернуть функцию func1(func2(x))
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
function getComposition(func1, func2) {
  return function(param) {
    return func1(func2(param));
  }
}

let result = getComposition(Math.sin, Math.asin)(x);
console.log(result);


В одну строку:
const getComposition = (func1, func2) => param => func1(func2(param));

let result = getComposition(Math.sin, Math.asin)(x);
console.log(result);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F Куратор тега JavaScript
const composition = (...funcs) => initialVal => funcs.reduceRight((v, f) => f(v), initialVal);


composition(v => v ** 3, v => v + 1, v => v / 2, v => v << 4)(1) // 729
composition(v => v.join('-'), v => [...v], v => v.slice(0, 5))('hello, world!!') // 'h-e-l-l-o'
composition(Object.keys)([ 69, 187, 666 ]) // ['0', '1', '2']
Ответ написан
Комментировать
Функция , которая возвращает функцию
const sumOfTwoFunc = function(func1, func2){
 return function(data){
   return func1(data)+func2(data);
 }
}

console.log(sumOfTwoFunc(Math.sin, Math.cos)(4));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы