@pashkevich-d

Как видоизменить функцию каррирования?

Всем привет! Есть функция, которая суммирует любое число входящих аргументов.

function add(a) {

  let currentSum = a;


  function f(b = 0) {
    currentSum += b;
    return f;
  }

  f.toString = function() {
    return currentSum;
  };

  return f;
}


Она работает и выдает правильную сумму на выходе, но она ретурнит f, функцию. Как ее можно видоизменить, чтобы она возвращала именно тип число?
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
если она будет возвращать число, то ничего не выйдет к числу прицепить опять, и не будет работать add(1)(2)(3)(4)

приводи к числу плюсиком, чтобы наверняка был Number а не String
+add(1)(2)(3) + 11
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
function add() {
  return [...arguments].reduce((acc, cur) => acc + cur, 0);
}

console.log(add(1,2,3));


Проверку аргументов на условие делайте сами
Ответ написан
Можно использовать valueOf вместо toString.
Тогда с результатом можно будет обращаться как с числом, хотя это и будет функция.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы