How does the following code sort this array to be in numerical order?

```
var array=[25, 8, 7, 41]
array.sort(function(a,b){
return a - b
})
```

I know that if the result of the computation is...

**Less than 0**: "a" is sorted to be a lower index than "b".

**Zero:** "a" and "b" are considered equal, and no sorting is performed.

**Greater than 0:** "b" is sorted to be a lower index than "a".

Is the array sort callback function called many times during the course of the sort?

If so, I'd like to know which two numbers are passed into the function each time. I assumed it first took "25"(a) and "8"(b), followed by "7"(a) and "41"(b), so:

25(a) - 8(b) = 17 (greater than zero, so sort "b" to be a lower index than "a"): 8, 25

7(a) - 41(b) = -34 (less than zero, so sort "a" to be a lower index than "b": 7, 41

How are the two sets of numbers then sorted in relation to one another?

Please help a struggling newbie!