Javascript控制台返回错误的排序数组

Gov*_*Rai 3 javascript arrays sorting

我在chrome控制台中输入了以下代码.

var array = [25,7,8,41];
array.sort();
Run Code Online (Sandbox Code Playgroud)

它回来了[25,41,7,8].这是怎么回事?

zfr*_*sch 6

sort()方法对数组的项进行排序.

排序顺序可以是字母顺序或数字顺序,也可以是升序(向上)或降序(向下).

默认情况下,sort()方法按字母顺序和升序将值排序为字符串.

这适用于字符串("Apple"出现在"Banana"之前).但是,如果数字被排序为字符串,则"25"大于"100",因为"2"大于"1".

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

如果您希望更正此问题,可以将比较函数编写为传递给sort方法的第一个参数.参考文献中列出了一个!

编辑:发布在这里为未来的情况......

var points = [40, 100, 1, 5, 25, 10];
function myFunction() {
    points.sort(function(a, b){return a-b});
    console.log(points);
}
Run Code Online (Sandbox Code Playgroud)

参考