so, step 1, `countup(5)`

is called, inside there there is `const countArray = countup(n -1);`

, so now `countup(4)`

is called, there is again that line, `countup(3)`

is called, there is again that line, `countup(2)`

is called, there is again that line, `countup(1)`

is called, there is again that line, `countup(0)`

is called - this time, with `n < 1`

being true, the line executed is `return []`

, so now we have that `countup(0)`

resolve as `[]`

, so for the line `const countArray = countup(0)`

, the value of `countArray`

is `[]`

. Now that `countArray`

has a value the next line can be executed, at this point `n`

has value of `1`

, so we have `countArray.push(1)`

, and `countArray`

becomes `[1]`

. And that value is returned. At this point finally also `countup(1)`

has an output. And so on.

I get everything except how after you get [1] you get the 2 and then the 3. I dont see how you add one to n from here.

Thanks