V tomto kurzu se naučíte o rekurzi v JavaScriptu pomocí příkladů.
Rekurze je proces, který si říká sám. Funkce, která se sama nazývá, se nazývá rekurzivní funkce.
Syntaxe rekurzivní funkce je:
function recurse() ( // function code recurse(); // function code ) recurse();
Zde je recurse()
funkce rekurzivní funkcí. Volá se uvnitř funkce.

Rekurzivní funkce musí mít podmínku, aby se přestala volat sama. V opačném případě se funkce nazývá neurčitě.
Jakmile je podmínka splněna, funkce se přestane volat sama. Tomu se říká základní podmínka.
Chcete-li zabránit nekonečné rekurzi, můžete použít příkaz if… else (nebo podobný přístup), kde jedna větev provádí rekurzivní volání a druhá nikoli.
Obecně to tedy vypadá takto.
function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();
Jednoduchým příkladem rekurzivní funkce by bylo odpočítávání hodnoty na 1.
Příklad 1: Tisk čísel
// 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);
Výstup
4 3 2 1
Ve výše uvedeném programu uživatel při volání funkce předá číslo jako argument.
V každé iteraci se hodnota čísla sníží o 1 a funkce countDown()
se volá, dokud není číslo kladné. Tady newNumber> 0
je základní podmínka.
Toto rekurzivní volání lze vysvětlit v následujících krocích:
countDown (4) vytiskne 4 a volání countDown (3) countDown (3) vytiskne 3 a volání countDown (2) countDown (2) vytiskne 2 a volání countDown (1) countDown (1) vytiskne 1 a volání countDown (0)
Když číslo dosáhne 0 , je splněna základní podmínka a funkce již není volána.
Příklad 2: Najít faktoriál
// 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)`); )
Výstup
Faktoriál 3 je 6
Když zavoláte funkci factorial()
s kladným celým číslem, rekurzivně se zavolá snížením počtu.
Tento proces pokračuje, dokud se číslo nestane 1 . Když číslo dosáhne 0 , vrátí se 1 .

Toto rekurzivní volání lze vysvětlit v následujících krocích:
faktoriál (3) vrátí 3 * faktoriál (2) faktoriál (2) vrátí 3 * 2 * faktoriál (1) faktoriál (1) vrátí 3 * 2 * 1 * faktoriál (0) faktoriál (0) vrátí 3 * 2 * 1 * 1