JavaScript-rekursjon (med eksempler)

I denne veiledningen vil du lære om rekursjon i JavaScript ved hjelp av eksempler.

Rekursjon er en prosess med å kalle seg selv. En funksjon som kaller seg selv kalles en rekursiv funksjon.

Syntaksen for rekursiv funksjon er:

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

Her er recurse()funksjonen en rekursiv funksjon. Det kaller seg selv inne i funksjonen.

Arbeid med rekursjon i JavaScript

En rekursiv funksjon må ha en forutsetning for å slutte å ringe seg selv. Ellers kalles funksjonen på ubestemt tid.

Når betingelsen er oppfylt, slutter funksjonen å ringe seg selv. Dette kalles en basistilstand.

For å forhindre uendelig rekursjon, kan du bruke hvis … annet uttalelse (eller lignende tilnærming) der den ene grenen gjør det rekursive anropet, og den andre ikke gjør det.

Så det ser generelt slik ut.

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

Et enkelt eksempel på en rekursiv funksjon vil være å telle ned verdien til 1.

Eksempel 1: Skriv ut tall

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

Produksjon

 4 3 2 1

I programmet ovenfor sender brukeren et nummer som et argument når han ringer til en funksjon.

I hver iterasjon reduseres tallverdien med 1 og funksjon countDown()kalles til tallet er positivt. Her newNumber> 0er grunntilstanden.

Denne rekursive samtalen kan forklares i følgende trinn:

 countDown (4) skriver ut 4 og samtaler countDown (3) countDown (3) skriver ut 3 og samtaler countDown (2) countDown (2) skriver ut 2 og samtaler countDown (1) countDown (1) skriver ut 1 og samtaler countDown (0)

Når tallet når 0 , er grunnbetingelsen oppfylt, og funksjonen blir ikke kalt lenger.

Eksempel 2: Finn faktor

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

Produksjon

 Fabrikken til 3 er 6

Når du kaller funksjon factorial()med et positivt heltall, vil den rekursivt kalle seg selv ved å redusere antallet.

Denne prosessen fortsetter til tallet blir 1 . Så når antallet når 0 , 1 returneres.

Arbeid med JavaScript-rekursjon i Factorial

Denne rekursive samtalen kan forklares i følgende trinn:

 fabrikk (3) returnerer 3 * fabrikk (2) fabrikk (2) returnerer 3 * 2 * fabrikk (1) fabrikk (1) returnerer 3 * 2 * 1 * fabrikk (0) fabrikk (0) returnerer 3 * 2 * 1 * 1

Interessante artikler...