Récursion en JavaScript
La récursion est une technique où une fonction s'appelle elle-même pour résoudre un problème. Découvrons ce concept avec des exemples variés.
Exemple de Récursion pour Calculer la Somme des Nombres
Voyons comment utiliser la récursion pour calculer la somme des nombres de 1 à n
:
// Fonction récursive pour calculer la somme des nombres
function sum(n) {
// Cas de base
if (n <= 1) {
return n;
}
// Appel récursif
return n + sum(n - 1);
}
let result = sum(4);
console.log(`La somme des nombres de 1 à 4 est ${result}`);
La somme des nombres de 1 à 4 est 10
Explication : La fonction sum
additionne le nombre courant n
avec le résultat de l'appel récursif à sum(n - 1)
. Le cas de base est lorsque n
est 1 ou moins, auquel cas la fonction retourne n
.
Exemple de Récursion pour Calculer la Puissance d'un Nombre
Voici comment utiliser la récursion pour calculer la puissance d'un nombre :
// Fonction récursive pour calculer la puissance
function power(base, exponent) {
// Cas de base
if (exponent === 0) {
return 1;
}
// Appel récursif
return base * power(base, exponent - 1);
}
let result = power(2, 3);
console.log(`2 élevé à la puissance 3 est ${result}`);
2 élevé à la puissance 3 est 8
Explication : La fonction power
multiplie la base
par le résultat de power(base, exponent - 1)
. Le cas de base est lorsque exponent
est 0, et elle retourne 1.
Exemple de Récursion pour Trouver la Longueur d'un Tableau
Voyons comment utiliser la récursion pour trouver la longueur d'un tableau :
// Fonction récursive pour trouver la longueur d'un tableau
function arrayLength(arr) {
// Cas de base
if (arr.length === 0) {
return 0;
}
// Appel récursif
return 1 + arrayLength(arr.slice(1));
}
let result = arrayLength([1, 2, 3, 4]);
console.log(`La longueur du tableau est ${result}`);
La longueur du tableau est 4
Explication : La fonction arrayLength
calcule la longueur du tableau en ajoutant 1 à l'appel récursif avec le tableau sans le premier élément. Le cas de base est lorsque le tableau est vide.
Questions Fréquemment Posées
JavaScript a-t-il une limite de récursion ?
Oui, JavaScript impose une limite de récursion pour éviter les débordements de pile. La profondeur maximale varie selon l'environnement d'exécution et peut généralement être consultée dans la documentation du moteur JavaScript utilisé.
Qu'est-ce qu'une récursion infinie ?
Une récursion infinie se produit lorsque la condition d'arrêt n'est jamais atteinte, entraînant un appel infini de la fonction. Cela peut provoquer un débordement de pile et entraîner un plantage du programme.