Rekurzia jazyka JavaScript (s príkladmi)

V tomto tutoriáli sa pomocou príkladov dozviete o rekurzii v JavaScripte.

Rekurzia je proces, ktorý si hovorí sám. Funkcia, ktorá sa nazýva, sa nazýva rekurzívna funkcia.

Syntax rekurzívnej funkcie je:

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

Tu recurse()je to funkcia rekurzívna. Volá sa to vo vnútri funkcie.

Spracovanie rekurzie v JavaScripte

Rekurzívna funkcia musí mať podmienku, aby sa sama prestala volať. Inak sa funkcia volá neurčito.

Po splnení podmienky sa funkcia prestane sama nazývať. Toto sa nazýva základná podmienka.

Aby ste zabránili nekonečnej rekurzii, môžete použiť príkaz if … else (alebo podobný prístup), kde jedna vetva robí rekurzívne volanie a druhá nie.

Spravidla to teda vyzerá takto.

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

Jednoduchým príkladom rekurzívnej funkcie by bolo odpočítanie hodnoty na 1.

Príklad 1: Tlač čí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ýkon

 4 3 2 1

Vo vyššie uvedenom programe používateľ odovzdá číslo ako argument pri volaní funkcie.

V každej iterácii sa číselná hodnota zníži o 1 a funkcia countDown()sa volá, kým nie je kladné číslo. Tu newNumber> 0je základná podmienka.

Toto rekurzívne volanie je možné vysvetliť v nasledujúcich krokoch:

 countDown (4) vypíše 4 a hovory countDown (3) countDown (3) vypíše 3 a hovory countDown (2) countDown (2) vypíše 2 a hovory countDown (1) countDown (1) vypíše 1 a hovory countDown (0)

Keď číslo dosiahne 0 , základná podmienka je splnená a funkcia sa už nebude volať.

Príklad 2: Nájdite 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ýkon

 Faktoriál 3 je 6

Keď zavoláte funkciu factorial()s kladným celým číslom, bude sa rekurzívne nazývať znížením počtu.

Tento proces pokračuje, kým sa číslo nestane 1 . Potom, keď sa počet dosiahne 0 , 1 je vrátená.

Fungovanie rekurzie JavaScriptu v faktoriáli

Toto rekurzívne volanie je možné vysvetliť v nasledujúcich krokoch:

 faktoriál (3) vráti 3 * faktoriál (2) faktoriál (2) vráti 3 * 2 * faktoriál (1) faktoriál (1) vráti 3 * 2 * 1 * faktoriál (0) faktoriál (0) vráti 3 * 2 * 1 * 1

Zaujímavé články...