JavaScript-recursie (met voorbeelden)

In deze tutorial leer je aan de hand van voorbeelden over recursie in JavaScript.

Recursie is een proces van zichzelf aanroepen. Een functie die zichzelf aanroept, wordt een recursieve functie genoemd.

De syntaxis voor recursieve functie is:

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

Hier is de recurse()functie een recursieve functie. Het roept zichzelf binnen de functie.

Werken met recursie in JavaScript

Een recursieve functie moet een voorwaarde hebben om zichzelf niet meer aan te roepen. Anders wordt de functie voor onbepaalde tijd aangeroepen.

Zodra aan de voorwaarde is voldaan, stopt de functie met het aanroepen van zichzelf. Dit wordt een basisconditie genoemd.

Om oneindige recursie te voorkomen, kunt u de if… else-instructie (of vergelijkbare benadering) gebruiken waarbij de ene branch de recursieve aanroep doet en de andere niet.

Dus het ziet er over het algemeen zo uit.

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

Een eenvoudig voorbeeld van een recursieve functie is het aftellen van de waarde naar 1.

Voorbeeld 1: nummers afdrukken

 // 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);

Uitvoer

 4 3 2 1

In het bovenstaande programma geeft de gebruiker een getal door als argument bij het aanroepen van een functie.

Bij elke iteratie wordt de getalswaarde met 1 verlaagd en wordt de functie countDown()aangeroepen totdat het getal positief is. Hier newNumber> 0is de basisconditie.

Deze recursieve oproep kan worden verklaard in de volgende stappen:

 countDown (4) print 4 en roept countDown (3) countDown (3) print 3 en roept countDown (2) countDown (2) print 2 en roept countDown (1) countDown (1) print 1 en roept countDown (0)

Wanneer het nummer 0 bereikt , is aan de basisvoorwaarde voldaan en wordt de functie niet meer aangeroepen.

Voorbeeld 2: vind faculteit

 // 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)`); )

Uitvoer

 De faculteit van 3 is 6

Wanneer u een functie aanroept factorial()met een positief geheel getal, zal deze zichzelf recursief aanroepen door het nummer te verlagen.

Dit proces gaat door totdat het nummer 1 wordt . Wanneer het nummer vervolgens 0 bereikt , wordt 1 geretourneerd.

Werken met JavaScript-recursie in Factorial

Deze recursieve oproep kan worden verklaard in de volgende stappen:

 faculteit (3) geeft 3 * faculteit (2) faculteit (2) geeft 3 * 2 * faculteit (1) faculteit (1) geeft 3 * 2 * 1 * faculteit (0) faculteit (0) geeft 3 * 2 * 1 * terug 1

Interessante artikelen...