Как понять рекурсию в JavaScript?

Создайте веб-приложение с помощью современного JavaScript и веб-компонентов Программирование и разработка

В этой статье мы поймем основные детали, связанные с частью понимания, а также с частью реализации рекурсии в JavaScript.

Давайте сначала разберемся, что такое рекурсия.

Рекурсия

  • Мы могли бы формально определить рекурсию простыми словами, то есть функцию, вызывающую саму себя снова и снова, пока она больше не останется с ней.
  • Мы можем думать о рекурсии (неформально) как о беге по гоночной трассе снова и снова, но с каждым разом круги становятся все меньше и меньше.
  • Как мы видели, рекурсия — это функция, которая продолжает вызывать себя снова и снова и в конце концов останавливается сама по себе, но мы также можем осознать тот факт, что функция не останавливается сама по себе.
  • Поэтому, чтобы заставить функцию остановиться в какой-то момент, мы предоставляем что-то, вызывающее Base Case, что позволяет любой функции понять, что «Да, пора завершаться!».
  • После задания базового условия мы реализуем часть рекурсии, в которой мы снова вызываем функцию в соответствии с требуемым результатом.
  • Некоторые распространенные примеры рекурсии включают «ряд Фибоначчи», «самую длинную общую подпоследовательность», «проверку палиндрома» и так далее.
  • Мы также можем представить рекурсию в виде цикла, в котором для каждого переданного пользователем параметра функция вызывается снова и снова и, следовательно, производит свой вывод в соответствии с необходимостью,

Теперь, когда мы поняли все основные вещи, связанные с рекурсией и ее реализацией, давайте посмотрим, как мы могли бы реализовать ее, визуализируя то же самое на следующих примерах:

Пример 1: В этом примере мы будем реализовывать счетчик уменьшения числа, который уменьшает значение на единицу и печатает все числа в порядке убывания одно за другим.

Javascript

<script>
    let decrementCounter = (number) => {
 
        // Base case condition....
        if(number === 0) return
        console.log(number);
        decrementCounter(number - 1);
    }
    decrementCounter(5);
</script>

Вывод:

5 
4 
3 
2 
1

Пример 2. В этом примере мы будем разрабатывать код, который поможет нам проверить, является ли переданное целое число четным или нечетным. При непрерывном вычитании числа из 2 результатом будет либо 0, либо 1. Итак, если это 0, то наше число четное, иначе оно нечетное.

Читайте также:  SDLC (жизненный цикл разработки программного обеспечения): Инкрементная модель или спиральной модели

Javascript

<script>
    let checkNumber = (number) => {
 
        // Two base case conditions.....
        if(number === 0) return (number + " is even");
        if(number === 1) return (number + " is odd");
        return checkNumber(number - 2);
    }
    console.log(checkNumber(5));
    console.log(checkNumber(10));
    console.log(checkNumber(13333));
</script>

Вывод:

1 is odd
0 is even
1 is odd

Оцените статью
bestprogrammer.ru
Добавить комментарий