JS.06 · Основы
Задача
Посчитать n! рекурсивно и функциональным способом.
Алгоритм
Рекурсия сводит n! к n·(n-1)!. Вариант через Array.from и reduce перемножает числа от 1 до n.
Исходный код
// Факториал: рекурсия и reduce
const factRec = n => (n <= 1 ? 1 : n * factRec(n - 1));
const factRed = n => Array.from({ length: n }, (_, i) => i + 1).reduce((a, b) => a * b, 1);
console.log('5! рекурсия =', factRec(5));
console.log('6! reduce =', factRed(6));
Пояснения
Стрелочные функции делают запись компактной; reduce сворачивает массив в одно значение.