Ebben az oktatóanyagban példák segítségével megismerheti a JavaScript rekurzióját.
A rekurzió önmagának hívásának folyamata. Az önmagát hívó függvényt rekurzív függvénynek nevezzük.
A rekurzív függvény szintaxisa:
function recurse() ( // function code recurse(); // function code ) recurse();
Itt a recurse()
függvény rekurzív függvény. A funkción belül hívja magát.

A rekurzív függvénynek feltételnek kell lennie ahhoz, hogy ne hívja fel önmagát. Ellenkező esetben a függvényt korlátlan ideig hívják.
A feltétel teljesülése után a funkció nem hívja fel önmagát. Ezt nevezzük alapfeltételnek.
A végtelen rekurzió megelőzéséhez használhatja az if… else utasítást (vagy hasonló megközelítést), ahol az egyik ág rekurzív hívást kezdeményez, a másik pedig nem.
Tehát általában így néz ki.
function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();
A rekurzív függvény egyszerű példája az érték 1-ig történő visszaszámlálása lenne.
1. példa: Számok nyomtatása
// 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);
Kimenet
4 3 2 1
A fenti programban a felhasználó egy számot ad át argumentumként egy függvény meghívásakor.
Minden egyes iterációban a számérték 1-gyel csökken, és a függvény countDown()
addig hívódik, amíg a szám pozitív nem lesz. Itt newNumber> 0
van az alapfeltétel.
Ez a rekurzív hívás a következő lépésekkel magyarázható:
A CountDown (4) 4 és a hívások CountDown (3) CountDown (3) 3 és hívások CountDown (2) countDown (2) 2 és hívások countDown (1) CountDown (1) 1 és hívások CountDown (0)
Amikor a szám eléri a 0 értéket , az alapfeltétel teljesül, és a funkciót már nem hívják meg.
2. példa: Keresse meg a Faktorialt
// 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)`); )
Kimenet
A 3 tényezője 6
Ha a függvényt factorial()
pozitív egész számmal hívja meg, akkor a szám csökkentésével rekurzívan hívja magát.
Ez a folyamat addig tart, amíg a szám nem lesz 1 . Majd amikor a szám eléri a 0 értéket , az 1 visszatér.

Ez a rekurzív hívás a következő lépésekkel magyarázható:
faktoriális (3) 3 * faktoriális (2) faktoriális (2) 3 * 2 * faktoriális (1) faktoriális (1) eredményt ad 3 * 2 * 1 * faktoriális (0) faktoriális (0) 3 * 2 * 1 * értéket ad vissza 1