> Что делать в функции каррирования в JavaScript при получении достаточного количества аргументов (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
Когда в каррированной функции накоплено достаточное количество аргументов (равное ожидаемому числу параметров), необходимо вызвать исходную функцию с этими аргументами и вернуть результат. Обычно это реализуется через проверку args.length >= arity (где arity - количество параметров исходной функции). Пример:
JAVASCRIPTfunction 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)); // 6console.log(curriedSum(1, 2)(3)); // 6
Если аргументов достаточно, вызываем fn через apply (или call/спред-оператор), иначе возвращаем новую функцию, которая продолжит накопление. Важно сохранять контекст this через apply для корректной работы в методах объектов.
> Похожие задачи по frontend
Может ли при push в массив в JavaScript происходить копирование данных
Блокируется ли поток при выполнении асинхронного кода после синхронного в JavaScript
Как рекурсивно проверять условие повторных запросов с учётом счётчика попыток в JavaScript
Как реализовать обработку клика на любой div внутри root и выводить в консоль только id этого div в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью