Can someone please explain to me, what’s going on with function(a, b){return a-b});
const numbers = [10, 7, 9, 5, 6, 3, 1, 8];
function arrange() {
return numbers.sort(**function(a, b){return a-b}**);
};
console.log(arrange());
Cheers!
Can someone please explain to me, what’s going on with function(a, b){return a-b});
const numbers = [10, 7, 9, 5, 6, 3, 1, 8];
function arrange() {
return numbers.sort(**function(a, b){return a-b}**);
};
console.log(arrange());
Cheers!
By default sort()
function sort values as string.However, if numbers are sorted as strings "35"
is bigger than "100"
, because 3
is bigger than 1
.
And because of this, sort() will produce incorrect result when sorting numbers.
But it can fix by providing a compare function to the sort().
the purpose of compare function is to define an alternative sort order.
if you have compare function for sort() as follows :
const numbers = [10, 7, 9, 5, 6, 3, 1, 8];
numbers.sort(function(a, b){return a-b})
If compare function returns negative value then a is sorted before b.
Else if compare function returns positive value then b is sorted before a.
Else compare function returns 0 then no changes are done with the sort order of the two values.