En este tutorial, aprenderá sobre la recursividad en JavaScript con la ayuda de ejemplos.
La recursividad es un proceso de autodenominación. Una función que se llama a sí misma se llama función recursiva.
La sintaxis de la función recursiva es:
function recurse() ( // function code recurse(); // function code ) recurse();
Aquí, la recurse()
función es una función recursiva. Se llama a sí mismo dentro de la función.

Una función recursiva debe tener una condición para dejar de llamarse a sí misma. De lo contrario, la función se llama indefinidamente.
Una vez que se cumple la condición, la función deja de llamarse a sí misma. A esto se le llama condición básica.
Para evitar la recursividad infinita, puede usar la instrucción if… else (o un enfoque similar) donde una rama realiza la llamada recursiva y la otra no.
Entonces, generalmente se ve así.
function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();
Un ejemplo simple de función recursiva sería contar el valor hasta 1.
Ejemplo 1: Imprimir números
// 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);
Salida
4 3 2 1
En el programa anterior, el usuario pasa un número como argumento cuando llama a una función.
En cada iteración, el valor del número se reduce en 1 y countDown()
se llama a la función hasta que el número es positivo. Aquí newNumber> 0
está la condición básica.
Esta llamada recursiva se puede explicar en los siguientes pasos:
countDown (4) imprime 4 y llama a countDown (3) countDown (3) imprime 3 y llama a countDown (2) countDown (2) imprime 2 y llama a countDown (1) countDown (1) imprime 1 y llama a countDown (0)
Cuando el número llega a 0 , se cumple la condición base y ya no se llama a la función.
Ejemplo 2: Encontrar 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)`); )
Salida
El factorial de 3 es 6
Cuando llama factorial()
a una función con un número entero positivo, se llamará a sí misma de forma recursiva disminuyendo el número.
Este proceso continúa hasta que el número se convierte en 1 . Luego, cuando el número llega a 0 , se devuelve 1 .

Esta llamada recursiva se puede explicar en los siguientes pasos:
factorial (3) devuelve 3 * factorial (2) factorial (2) devuelve 3 * 2 * factorial (1) factorial (1) devuelve 3 * 2 * 1 * factorial (0) factorial (0) devuelve 3 * 2 * 1 * 1