Ricorsione JavaScript (con esempi)

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.

Lavorare sulla ricorsione in JavaScript

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> 0la 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 .

Utilizzo della ricorsione JavaScript in Factorial

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

Articoli interessanti...