JavaScript rekurzija (s primjerima)

U ovom ćete tutorijalu uz primjere naučiti o rekurziji u JavaScript-u.

Rekurzija je proces samoga sebe. Funkcija koja se sama naziva naziva se rekurzivna funkcija.

Sintaksa rekurzivne funkcije je:

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

Ovdje je recurse()funkcija rekurzivna funkcija. Poziva se unutar funkcije.

Rad rekurzije u JavaScript-u

Rekurzivna funkcija mora imati uvjet da se prestane pozivati. Inače, funkcija se poziva na neodređeno vrijeme.

Jednom kada je uvjet zadovoljen, funkcija se prestaje pozivati. To se naziva osnovnim uvjetom.

Da biste spriječili beskonačnu rekurziju, možete koristiti izraz if … else (ili sličan pristup) gdje jedna grana upućuje rekurzivni poziv, a druga ne.

Dakle, to općenito izgleda ovako.

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

Jednostavan primjer rekurzivne funkcije bio bi odbrojavanje vrijednosti do 1.

Primjer 1: Ispis brojeva

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

Izlaz

 4 3 2 1

U gore navedenom programu korisnik prilikom pozivanja funkcije dodaje broj kao argument.

U svakoj se iteraciji vrijednost broja smanjuje za 1 i funkcija countDown()se poziva dok broj nije pozitivan. Evo newNumber> 0osnovnog stanja.

Ovaj rekurzivni poziv može se objasniti u sljedećim koracima:

 countDown (4) ispisuje 4 i poziva countDown (3) countDown (3) ispisuje 3 i poziva countDown (2) countDown (2) ispisuje 2 i poziva countDown (1) countDown (1) ispisuje 1 i poziva countDown (0)

Kad broj dosegne 0 , osnovni je uvjet zadovoljen i funkcija se više ne poziva.

Primjer 2: Pronađi faktorijel

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

Izlaz

 Faktorijal broja 3 je 6

Kada pozivate funkciju factorial()s pozitivnim cijelim brojem, ona će se rekurzivno pozvati smanjenjem broja.

Taj se postupak nastavlja sve dok broj ne postane 1 . Tada kada broj dosegne 0 , vraća se 1 .

Rad JavaScript rekurzije u Factorialu

Ovaj rekurzivni poziv može se objasniti u sljedećim koracima:

 faktorijel (3) vraća 3 * faktorijel (2) faktorijel (2) vraća 3 * 2 * faktorijel (1) faktorijel (1) vraća 3 * 2 * 1 * faktorijel (0) faktorijel (0) vraća 3 * 2 * 1 * 1

Zanimljivi članci...