Recursão de JavaScript (com exemplos)

Neste tutorial, você aprenderá sobre recursão em JavaScript com a ajuda de exemplos.

A recursão é um processo de auto-chamada. Uma função que chama a si mesma é chamada de função recursiva.

A sintaxe da função recursiva é:

 function recurse() ( // function code recurse(); // function code ) recurse();

Aqui, a recurse()função é uma função recursiva. Ele está se chamando dentro da função.

Trabalho de recursão em JavaScript

Uma função recursiva deve ter uma condição para parar de chamar a si mesma. Caso contrário, a função é chamada indefinidamente.

Assim que a condição for atendida, a função para de chamar a si mesma. Isso é chamado de condição básica.

Para evitar a recursão infinita, você pode usar a instrução if… else (ou abordagem semelhante) onde um branch faz a chamada recursiva e o outro não.

Portanto, geralmente é assim.

 function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();

Um exemplo simples de função recursiva seria a contagem regressiva do valor até 1.

Exemplo 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);

Resultado

 4 3 2 1

No programa acima, o usuário passa um número como um argumento ao chamar uma função.

Em cada iteração, o valor do número diminui em 1 e a função countDown()é chamada até que o número seja positivo. Aqui newNumber> 0está a condição básica.

Essa chamada recursiva pode ser explicada nas seguintes etapas:

 countDown (4) imprime 4 e chama countDown (3) countDown (3) imprime 3 e chama countDown (2) countDown (2) imprime 2 e chama countDown (1) countDown (1) imprime 1 e chama countDown (0)

Quando o número chega a 0 , a condição básica é atendida e a função não é mais chamada.

Exemplo 2: Encontrar fatorial

 // 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)`); )

Resultado

 O fatorial de 3 é 6

Quando você chama uma função factorial()com um número inteiro positivo, ela se chama recursivamente diminuindo o número.

Este processo continua até que o número se torne 1 . Então, quando o número chega a 0 , 1 é retornado.

Trabalho de recursão de JavaScript em fatorial

Essa chamada recursiva pode ser explicada nas seguintes etapas:

 fatorial (3) retorna 3 * fatorial (2) fatorial (2) retorna 3 * 2 * fatorial (1) fatorial (1) retorna 3 * 2 * 1 * fatorial (0) fatorial (0) retorna 3 * 2 * 1 * 1

Artigos interessantes...