JavaScript rekursija (ar piemēriem)

Šajā apmācībā jūs uzzināsit par rekursiju JavaScript, izmantojot piemērus.

Rekursija ir pats sevis izsaukšanas process. Funkciju, kas pati sevi sauc, sauc par rekursīvo funkciju.

Rekursīvās funkcijas sintakse ir šāda:

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

Šeit recurse()funkcija ir rekursīva funkcija. Tas sauc sevi funkcijas iekšpusē.

Rekursijas darbība JavaScript

Rekurzīvajai funkcijai ir jābūt nosacījumam, lai pārtrauktu sevi zvanīt. Pretējā gadījumā funkcija tiek izsaukta uz nenoteiktu laiku.

Kad nosacījums ir izpildīts, funkcija pārstāj sevi izsaukt. To sauc par bāzes nosacījumu.

Lai novērstu bezgalīgu rekursiju, varat izmantot paziņojumu if… else (vai līdzīgu pieeju), kur viena filiāle veic rekursīvo zvanu, bet otra - ne.

Tātad, tas parasti izskatās šādi.

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

Vienkāršs rekursīvas funkcijas piemērs būtu vērtības skaitīšana līdz 1.

1. piemērs: numuru drukāšana

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

Rezultāts

 4 3 2 1

Iepriekš minētajā programmā lietotājs izsauc funkciju kā argumentu kā argumentu.

Katrā atkārtojumā skaitļa vērtība tiek samazināta par 1 un countDown()tiek izsaukta funkcija, līdz skaitlis ir pozitīvs. Šeit newNumber> 0ir pamatnosacījums.

Šo rekursīvo zvanu var izskaidrot šādās darbībās:

 countDown (4) izdrukā 4 un zvani countDown (3) countDown (3) izdrukā 3 un zvanus countDown (2) countDown (2) izdrukā 2 un zvanus countDown (1) countDown (1) izdrukā 1 un zvanus countDown (0)

Kad skaitlis sasniedz 0 , pamatnosacījums ir izpildīts, un funkcija vairs netiek izsaukta.

2. piemērs: atrodiet faktoriālo

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

Rezultāts

 Faktoriāls 3 ir 6

Zvanot funkcijai factorial()ar pozitīvu veselu skaitli, tā rekursīvi izsauks sevi, samazinot skaitli.

Šis process turpinās, līdz skaitlis kļūst 1 . Tad, kad skaits sasniedz 0 , 1 tiek atgriezta.

JavaScript rekursijas darbība Factorial

Šo rekursīvo zvanu var izskaidrot šādās darbībās:

 faktoriāls (3) atgriež 3 * faktoriāls (2) faktoriāls (2) atgriež 3 * 2 * faktoriāls (1) faktoriāls (1) atgriež 3 * 2 * 1 * faktoriāls (0) faktoriāls (0) atgriež 3 * 2 * 1 * 1

Interesanti raksti...