Bonjour,
voici une fonction récursive qui rempli un tableau avec des chiffres allant de 1 à n.

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));
Je bloque dans la compréhension du fonctionnement de cette fonction. La ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 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 ?