I'm learning Javascript and I faced a problem with sorting numbers I don't understand how work sorting function and I find an other way to sort the numbers but it was with list not with arrays I need explanations. I also see this link : Sorting array with numbers without sort() method
const points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo1").innerHTML = points;
points.sort(function(a, b) {
return a - b
});
document.getElementById("demo2").innerHTML = points;
document.getElementById("demo3").innerHTML = points.sort();
unsorted:
<div id="demo1"></div>
sorted:
<div id="demo2"></div>
sorted alphabetically:
<div id="demo3"></div>
const points = [40, 100, 1, 5, 25, 10];
console.log(points)
console.log(points.sort())
console.log(points.sort(function(a, b){return (a - b);}))
By default, the sort() function sorts values as strings.
However, if numbers are sorted as strings, "25" is bigger than "100", because "2" is bigger than "1".
Because of this, the sort() method will produce incorrect results when sorting numbers.
You can fix this by providing a compare function:
const points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});