Назад к вопросам
Middle+
5
<script> function sum(valueA) { throw 'Not implemented' } console.log(sum(1)()); // 1 console.log(sum(1)(2)()); // 3 console.log(sum(1)(2)(-3)()); // 0 </script>
Компании, где спрашивали
Mayflower
Ответ от нейросети
sobes.tech AI
Функция sum должна поддерживать цепочку вызовов с аргументами и завершаться вызовом без аргументов, который возвращает сумму всех переданных чисел. Для этого можно использовать замыкание, где накапливается сумма, и возвращать функцию, которая либо принимает следующий аргумент, либо, если вызвана без аргументов, возвращает результат.
Пример реализации на JavaScript:
function sum(valueA) {
let total = valueA;
function inner(valueB) {
if (arguments.length === 0) {
return total;
}
total += valueB;
return inner;
}
return inner;
}
console.log(sum(1)()); // 1
console.log(sum(1)(2)()); // 3
console.log(sum(1)(2)(-3)()); // 0