Recurrencia de JavaScript (con ejemplos)

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.

Trabajo de recursividad en JavaScript

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> 0está 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 .

Trabajo de recursividad JavaScript en Factorial

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

Articulos interesantes...