In questo tutorial imparerai a conoscere la ricorsione in JavaScript con l'aiuto di esempi.
La ricorsione è un processo di chiamare se stesso. Una funzione che chiama se stessa è chiamata funzione ricorsiva.
La sintassi per la funzione ricorsiva è:
function recurse() ( // function code recurse(); // function code ) recurse();
Qui, la recurse()
funzione è una funzione ricorsiva. Si chiama all'interno della funzione.

Una funzione ricorsiva deve avere una condizione per interrompere la chiamata a se stessa. Altrimenti, la funzione viene chiamata indefinitamente.
Una volta soddisfatta la condizione, la funzione smette di chiamare se stessa. Questa è chiamata condizione di base.
Per prevenire la ricorsione infinita, puoi usare l'istruzione if … else (o un approccio simile) in cui un ramo effettua la chiamata ricorsiva e l'altro no.
Quindi, generalmente sembra così.
function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();
Un semplice esempio di una funzione ricorsiva sarebbe il conto alla rovescia del valore fino a 1.
Esempio 1: stampare numeri
// 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);
Produzione
4 3 2 1
Nel programma precedente, l'utente passa un numero come argomento quando chiama una funzione.
In ogni iterazione, il valore del numero viene diminuito di 1 e la funzione countDown()
viene chiamata finché il numero non è positivo. Ecco newNumber> 0
la condizione di base.
Questa chiamata ricorsiva può essere spiegata nei seguenti passaggi:
countDown (4) stampa 4 e chiama countDown (3) countDown (3) stampa 3 e chiama countDown (2) countDown (2) stampa 2 e chiama countDown (1) countDown (1) stampa 1 e chiama countDown (0)
Quando il numero raggiunge 0 , la condizione di base è soddisfatta e la funzione non viene più chiamata.
Esempio 2: trova fattoriale
// 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)`); )
Produzione
Il fattoriale di 3 è 6
Quando chiami la funzione factorial()
con un numero intero positivo, si chiamerà ricorsivamente diminuendo il numero.
Questo processo continua fino a quando il numero diventa 1 . Quindi, quando il numero raggiunge 0 , viene restituito 1 .

Questa chiamata ricorsiva può essere spiegata nei seguenti passaggi:
fattoriale (3) restituisce 3 * fattoriale (2) fattoriale (2) restituisce 3 * 2 * fattoriale (1) fattoriale (1) restituisce 3 * 2 * 1 * fattoriale (0) fattoriale (0) restituisce 3 * 2 * 1 * 1