JavaScript рекурсия (с примери)

В този урок ще научите за рекурсията в JavaScript с помощта на примери.

Рекурсията е процес на самоизвикване. Функция, която се извиква, се нарича рекурсивна функция.

Синтаксисът за рекурсивна функция е:

 function recurse() ( // function code recurse(); // function code ) recurse();

Тук recurse()функцията е рекурсивна функция. Той се извиква вътре във функцията.

Работа с рекурсия в JavaScript

Рекурсивната функция трябва да има условие да спре да се самоизвиква. В противен случай функцията се извиква за неопределено време.

След като условието е изпълнено, функцията спира да се самоизвиква. Това се нарича основно условие.

За да предотвратите безкрайна рекурсия, можете да използвате оператора if … else (или подобен подход), където единият клон прави рекурсивното извикване, а другият не.

Така че, обикновено изглежда така.

 function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();

Един прост пример за рекурсивна функция би бил отброяването на стойността до 1.

Пример 1: Печат на числа

 // program to count down numbers to 1 function countDown(number) ( // display the number console.log(number); // decrease the number value const newNumber = number - 1; // base case if (newNumber> 0) ( countDown(newNumber); ) ) countDown(4);

Изход

 4 3 2 1

В горната програма потребителят предава число като аргумент при извикване на функция.

Във всяка итерация стойността на числото се намалява с 1 и countDown()се извиква функция, докато числото е положително. Тук newNumber> 0е основното условие.

Това рекурсивно повикване може да бъде обяснено в следните стъпки:

 countDown (4) отпечатва 4 и обаждания countDown (3) countDown (3) отпечатва 3 и обаждания countDown (2) countDown (2) отпечатва 2 и обаждания countDown (1) countDown (1) отпечатва 1 и обаждания countDown (0)

Когато числото достигне 0 , основното условие е изпълнено и функцията вече не се извиква.

Пример 2: Намерете факториал

 // program to find the factorial of a number function factorial(x) ( // if number is 0 if (x === 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) const num = 3; // calling factorial() if num is non-negative if (num> 0) ( let result = factorial(num); console.log(`The factorial of $(num) is $(result)`); )

Изход

 Факториалът на 3 е 6

Когато извикате функция factorial()с положително цяло число, тя ще се извика рекурсивно чрез намаляване на номера.

Този процес продължава, докато числото стане 1 . След това, когато числото достигне 0 , се връща 1 .

Работа с рекурсия на JavaScript във Factorial

Това рекурсивно повикване може да бъде обяснено в следните стъпки:

 факториал (3) връща 3 * факториал (2) факториал (2) връща 3 * 2 * факториал (1) факториал (1) връща 3 * 2 * 1 * факториал (0) факториал (0) връща 3 * 2 * 1 * 1

Интересни статии...