JavaScript rekurzió (példákkal)

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.

Rekurzió működése a JavaScript-ben

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> 0van 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.

A JavaScript rekurziójának működése a Factorial-ban

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

érdekes cikkek...