> Что делать в функции каррирования в JavaScript при получении достаточного количества аргументов (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Яндекс

Стек: JavaScript

> Пример ответа

Когда в каррированной функции накоплено достаточное количество аргументов (равное ожидаемому числу параметров), необходимо вызвать исходную функцию с этими аргументами и вернуть результат. Обычно это реализуется через проверку args.length >= arity (где arity - количество параметров исходной функции). Пример:

JAVASCRIPT
function curry(fn) {
const arity = fn.length;
return function curried(...args) {
if (args.length >= arity) {
return fn.apply(this, args);
} else {
return (...nextArgs) => curried(...args, ...nextArgs);
}
};
}
// Использование:
const sum = (a, b, c) => a + b + c;
const curriedSum = curry(sum);
console.log(curriedSum(1)(2)(3)); // 6
console.log(curriedSum(1, 2)(3)); // 6

Если аргументов достаточно, вызываем fn через apply (или call/спред-оператор), иначе возвращаем новую функцию, которая продолжит накопление. Важно сохранять контекст this через apply для корректной работы в методах объектов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью