So I’ve just been going through some of these recursive exercises and like a lot of people they have been confusing for me. I just got to this one and the example didn’t quite make sense to me.

```
function count(n) {
if (n === 1) {
return [1];
} else {
var numbers = count(n - 1);
numbers.push(n);
return numbers;
}
}
```

I ran it in console with debugger and stepped through it using count(5); and here is what seems to happen:

The function begins and n is not equal to 1 so it skips to

var numbers = count(n-1);

so far so good. It does this for 5,4,3,2, and finally hits 1. Then it runs and 1 === 1 so it returns 1.

Then it jumps to numbers.push(n); and starts iterating back up to 5. HOW DOES THIS HAPPEN??? How does it jump from the return statement in the if section into the push statement of the else block??? That makes absolutely no sense to me so please help me understand it. Thanks for you time.