JS如何对数字进行排序?

sam*_*eie 5 javascript arrays sorting

我正在学习 Javascript,遇到了对数字进行排序的问题,我不明白排序功能是如何工作的,我找到了另一种对数字进行排序的方法,但它是使用列表而不是数组,我需要解释。我还看到这个链接: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();
Run Code Online (Sandbox Code Playgroud)
unsorted:
<div id="demo1"></div>
sorted:
<div id="demo2"></div>
sorted alphabetically:
<div id="demo3"></div>
Run Code Online (Sandbox Code Playgroud)

pra*_*aul 0

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);}))
Run Code Online (Sandbox Code Playgroud)

默认情况下,sort() 函数将值作为字符串进行排序。

但是,如果数字按字符串排序,则“25”大于“100”,因为“2”大于“1”。

因此,sort() 方法在对数字进行排序时会产生不正确的结果。

您可以通过提供比较函数来解决此问题:

常量点 = [40, 100, 1, 5, 25, 10]; point.sort(函数(a, b){返回a - b});

解决方案