dmc1989
@dmc1989

Как сделать функцию sum в javascript?

Пытаюсь делать функцию, которая б суммировала числа немножко другим способом. Но вот не могу понять, чего не хватает( Когда-то читал о таком, но не смог найти книгу(

function sumTwo(n) {
    let sum = 0;

    if (!n) {
        return sum;
    } else {
        return function(n) {
            sum += n;
            return sumTwo;
        }
    }    
}

console.log(sumTwo(1)(2)(3));
  • Вопрос задан
  • 6705 просмотров
Решения вопроса 2
@dimoff66
Кратко о себе: Я есть
function sumMany(p1, p2) {
  const [sum, value] = Array.isArray(p1) ? [p1[0], p2] : [0, p1]
  const total = sum + (value || 0)
  
  return Object.assign(sumMany.bind(null,  [total]), {
     valueOf () { return total },
     toString () { return String(total) }
  })
}    

console.log(sumMany(1)(2)(4))
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
function sum(value) {
  return (function next(previousSum) {
    return Object.defineProperty(function nextSum(value) {
      return next(previousSum + Number(value));
    }, 'valueOf', {value() {
      return previousSum;
    }});
  })(Number(value));
}

Тест от 0xD34F проходит:
one = sum(1)
two = one(1)
three = one + two // 3
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Пройдите сначала задания learn javascript.
Ваша задача гуглится за полсекунды: https://learn.javascript.ru/task/sum-many-brackets
Ответ написан
dmc1989
@dmc1989 Автор вопроса
function sumTwo(n) {
    let sum = n;

    const f = function(n) {
        sum += n;
        return f;
    }

    f.toString = () => {
        return sum;
    };

    return f;
}
Ответ написан
Ваш ответ на вопрос

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

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