Код Senior Реализация с нуля обновлено
Сложение цепочкой вызовов
Условие
add(2)(1)() === 3. Каждый вызов с числом добавляет его, вызов без аргументов завершает цепочку и возвращает сумму. add() без аргументов сразу даёт 0.
Что проверяют тесты
без аргументов
два звена
три звена
одно звено
цепочки независимы
Как подойти
Вариадическая цепочка. Признак конца - именно undefined, а не ложность: add(0)() должно давать 0, а не заканчиваться раньше. Состояние живёт в замыкании конкретной цепочки, поэтому две цепочки не мешают друг другу - это и проверяет последний тест.
Подсказки: 3
- Пустой вызов - признак конца, его надо отличать от вызова с нулём.
- Возвращай ту же функцию, накапливая сумму в замыкании.
- Отдельная цепочка должна иметь своё состояние.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.