JavaScripti rekursioon (koos näidetega)

Selles õpetuses saate näidete abil õppida JavaScripti rekursiooni kohta.

Rekursioon on iseendale helistamise protsess. Funktsiooni, mis ennast kutsub, nimetatakse rekursiivseks funktsiooniks.

Rekursiivse funktsiooni süntaks on:

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

Siin on recurse()funktsioon rekursiivne funktsioon. See kutsub ennast funktsiooni sisse.

Rekursiooni töötamine JavaScriptis

Rekursiivsel funktsioonil peab olema tingimus, et ta ei saaks enam endale helistada. Vastasel juhul nimetatakse funktsiooni lõputult.

Kui tingimus on täidetud, lõpetab funktsioon endale helistamise. Seda nimetatakse põhitingimuseks.

Lõputu rekursiooni vältimiseks võite kasutada lauset if… else (või sarnast lähenemist), kus üks haru teeb rekursiivse kõne ja teine ​​mitte.

Nii näeb see üldiselt välja selline.

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

Rekursiivse funktsiooni lihtne näide oleks loendada väärtus 1-ni.

Näide 1: Numbrite printimine

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

Väljund

 4 3 2 1

Ülaltoodud programmis edastab kasutaja funktsiooni kutsumisel argumendina numbri.

Igas iteratsioonis vähendatakse numbri väärtust 1 võrra ja funktsiooni countDown()kutsutakse seni, kuni arv on positiivne. Siin newNumber> 0on põhitingimus.

Seda rekursiivset kõnet saab seletada järgmiste sammudega:

 countDown (4) prindib 4 ja kõned countDown (3) countDown (3) prindib 3 ja kõned countDown (2) countDown (2) prindib 2 ja kõned countDown (1) countDown (1) prindib 1 ja kõned countDown (0)

Kui number jõuab 0-ni , on põhitingimus täidetud ja funktsiooni enam ei kutsuta.

Näide 2: leidke Factorial

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

Väljund

 3 faktorial on 6

Kui kutsute funktsiooni factorial()positiivse täisarvuga, kutsub see ennast rekursiivselt, vähendades numbrit.

See protsess kestab seni, kuni arvuks saab 1 . Siis, kui number jõuab 0-ni , tagastatakse 1 .

JavaScripti rekursiooni töötamine Factorialis

Seda rekursiivset kõnet saab seletada järgmiste sammudega:

 faktoriaal (3) tagastab 3 * faktoriaal (2) faktoriaal (2) tagastab 3 * 2 * faktoriaal (1) faktoriaal (1) tagastab 3 * 2 * 1 * faktoriaal (0) faktoriaal (0) tagastab 3 * 2 * 1 * 1

Huvitavad Artiklid...