定义

sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的

语法

arr.sort([compareFunction])
compareFunction 可选用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。firstEl第一个用于比较的元素。secondEl第二个用于比较的元素。

出现的问题

正是由于sort的排序方式是先将其转换为字符串,所以导致了在排序数字时,如数组:[6,2,3,5,10],它的结果将会变成:[10,2,3,5,6];
arr.sort();
image.png
那么应该如何修改呢?
arr.sort(
function(a,b) {
return(a-b);
}
);
排出的结果就会正确了。
image.png

机制

背后的原因是什么呢?
对不起,懒癌犯了,改天再查。。。