Compréhension fonction récursive
Bonjour,
voici une fonction récursive qui rempli un tableau avec des chiffres allant de 1 à n.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
function countup(n) {
if (n < 1) {
return [];
} else {
const countArray = countup(n - 1);
countArray.push(n);
return countArray;
}
}
console.log(countup(5)); |
Je bloque dans la compréhension du fonctionnement de cette fonction. La ligne
Code:
const countArray = countup(n - 1);
est censée appeler la fonction elle même avec comme paramètre n-1 donc on va au début de la fonction
Code:
1 2 3 4
| function countup(n-1) {
if (n-1 < 1) {
return [];
} else |
et on va tomber encore une fois sur la ligne
Code:
const countArray = countup(n - 2);
qui nous fait remonter encore au début de la fonction et ainsi de suite jusqu'à n = 0 pour lequel la fonction retourne un tableau vide (et ne dépasse pas le else).
Du coup on ne pourra jamais atteindre la ligne d'après, à savoir
Code:
countArray.push(n);
et donc on ne pourra rien "pusher" dans le tableau .... Parce que, et si mes connaissances sont correctes, lorsqu'on appelle une fonction on ne va plus exécuter le code qui se trouve après jusqu'à l'exécution complète de la fonction ....
J'ai l'impression d'avoir raté quelque chose de fondamental ? c'est grave docteur ?