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});
Solution
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With