Рекурсия – это процесс вызова функцией самой себя. Позволь мне показать пример, чтобы было понятнее.
Допустим, у нас есть функция, которая считает факториал числа:
function factorial(n) {
Базовый случай - когда n равно 0 или 1
if (n === 0 || n === 1) {
return 1
}
Рекурсивный случай - когда n > 1
return n * factorial(n - 1)
}
Здесь мы используем условие if, чтобы проверить, является ли значение n равным 0 или 1. Если это так, то возвращаем 1, так как факториалы 0 и 1 равны 1. В противном случае, мы используем рекурсию и вызываем функцию factorial с аргументом n – 1. Это позволяет нам постепенно уменьшать значение n, пока не достигнем базового случая.
Вызовем эту функцию с аргументом 5 и посмотрим, как она работает:
console.log(factorial(5))
В консоли у нас отобразится число 120.
Когда мы вызываем factorial(5), функция начинает выполнение. Она проверяет, не выполняется ли базовый случай. Так как это не так, она вызывает себя с аргументом n – 1, то есть factorial(4). Затем factorial(4) вызывает factorial(3), и так далее, пока factorial(1) не достигнут базовый случай. Когда он достигнут, функция начинает возвращаться обратно, перемножая значения n, начиная с 1, и возвращая результирующее значение.
Таким образом, factorial(5) равный 5 * 4 * 3 * 2 * 1, дает нам результат 120.