Here is the context:
function compare (value1, value2) {
if(value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
The sort
method takes an optional comparison function that determines the resulting sort order based on the following:
value1
to a lower index than value2
value1
and value2
unchanged with respect to each othervalue1
to a higher index than value2
Note that given these rules, it's possible to shorten your comparison function to the following:
function compare(value1, value2) {
return value1 - value2;
}
-1
means that value1
is less than value2
0
means that value1
is equal to value2
1
means that value1
is greater than value2
No, -1, 0, and 1 in a comparison function are used to tell the caller how the first value should be sorted in relation to the second one. -1 means the first goes before the second, 1 means it goes after, and 0 means they're equivalent.
The sort
function uses the comparisons in the function you pass it to sort the function. For instance, if you wanted to sort in reverse order, you could make line 3 return 1;
and line 5 return -1
.