2.3 KiB
2.3 KiB
title, id, challengeType, forumTopicId, localeTitle
title | id | challengeType | forumTopicId | localeTitle |
---|---|---|---|---|
Accumulator factory | 594810f028c0303b75339ace | 5 | 302222 | Аккумуляторный завод |
Description
Создайте функцию, которая принимает один (числовой) аргумент и возвращает другую функцию, которая является аккумулятором. Возвращенная функция аккумулятора, в свою очередь, также принимает один числовой аргумент и возвращает сумму всех числовых значений, переданных до этого аккумулятора (включая начальное значение, переданное при создании аккумулятора).
Правила:
Не используйте глобальные переменные.
Подсказка:
Закрытие сохраняет внешнее состояние.
Instructions
Tests
tests:
- text: <code>accumulator</code> is a function.
testString: assert(typeof accumulator === 'function');
- text: <code>accumulator(0)</code> should return a function.
testString: assert(typeof accumulator(0) === 'function');
- text: <code>accumulator(0)(2)</code> should return a number.
testString: assert(typeof accumulator(0)(2) === 'number');
- text: Passing in the values 3, -4, 1.5, and 5 should return 5.5.
testString: assert(testFn(5) === 5.5);
Challenge Seed
function accumulator(sum) {
// Good luck!
}
After Tests
const testFn = typeof accumulator(3) === 'function' && accumulator(3);
if (testFn) {
testFn(-4);
testFn(1.5);
}
Solution
function accumulator(sum) {
return function(n) {
return sum += n;
};
}