EngineerSpock

Рубрика “Учебник JavaScript” – как работает рекурсия в JS

Рекурсия – это процесс вызова функцией самой себя. Позволь мне показать пример, чтобы было понятнее.

Допустим, у нас есть функция, которая считает факториал числа:

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.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *