У овом упутству ћете научити о рекурзији у ЈаваСцрипт-у помоћу примера.
Рекурзија је процес позивања самог себе. Функција која себе позива назива се рекурзивна функција.
Синтакса рекурзивне функције је:
function recurse() ( // function code recurse(); // function code ) recurse();
Овде је recurse()
функција рекурзивна функција. Позива се унутар функције.

Рекурзивна функција мора имати услов да престане да позива себе. У супротном, функција се позива на неодређено време.
Једном када је услов испуњен, функција престаје да позива себе. Ово се назива основни услов.
Да бисте спречили бесконачну рекурзију, можете користити иф … елсе наредбу (или сличан приступ) где једна грана врши рекурзивни позив, а друга не.
Дакле, то генерално изгледа овако.
function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();
Једноставан пример рекурзивне функције био би одбројавање вредности до 1.
Пример 1: Штампање бројева
// 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);
Оутпут
4 3 2 1
У горенаведеном програму, корисник приликом позивања функције преда број као аргумент.
У свакој итерацији, вредност броја се смањује за 1 и функција countDown()
се позива док број није позитиван. Ево newNumber> 0
основног услова.
Овај рекурзивни позив може се објаснити у следећим корацима:
цоунтДовн (4) исписује 4 и позива цоунтДовн (3) цоунтДовн (3) исписује 3 и позива цоунтДовн (2) цоунтДовн (2) исписује 2 и позива цоунтДовн (1) цоунтДовн (1) штампа 1 и позива цоунтДовн (0)
Када број достигне 0 , основни услов је испуњен и функција се више не позива.
Пример 2: Пронађи факторијел
// 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)`); )
Оутпут
Фактор од 3 је 6
Када позивате функцију factorial()
са позитивним целим бројем, она ће се рекурзивно позвати смањењем броја.
Овај процес се наставља све док број не постане 1 . Онда када тај број достиже 0 , 1 је враћена.

Овај рекурзивни позив може се објаснити у следећим корацима:
факторијел (3) враћа 3 * факторијел (2) факторијел (2) враћа 3 * 2 * факторијел (1) факторијел (1) враћа 3 * 2 * 1 * факторијел (0) факторијел (0) враћа 3 * 2 * 1 * 1