Bonjour,
voici une fonction récursive qui rempli un tableau avec des chiffres allant de 1 à n.
Je bloque dans la compréhension du fonctionnement de cette fonction. La ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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));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 : Sélectionner tout - Visualiser dans une fenêtre à part const countArray = countup(n - 1);
et on va tomber encore une fois sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function countup(n-1) { if (n-1 < 1) { return []; } elsequi 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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part const countArray = countup(n - 2);
Du coup on ne pourra jamais atteindre la ligne d'après, à savoiret 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 ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part countArray.push(n);
J'ai l'impression d'avoir raté quelque chose de fondamental ? c'est grave docteur ?
Partager