const numbersArray = [5, 8, 3, 10, 6]
console.log(numbersArray.sort().toString())
控制台输出 10,3,5,6,8
一般来说10肯定大于后面的 但实际输出结果就是10最小
原因:sort()方法只能对0-9以内的数组进行正确排序,两位数以上的数组项虽然给出了返回值,但却并不是排序后的结果。这是因为sort()是内部做的是根据ASCLL码进行排序的,并不是根据数值大小排序。
如果我们必须要两位数排序怎么办
sort(compareFn?: (a: T, b: T) => number): this;
跳转进去发现他里面内置了一个回调方法
const numbersArray = [5, 8, 3, 10, 6]
console.log(numbersArray.sort((a, b) => a - b).toString())
控制台输出 3,5,6,8,10 这样就对了 ab从小到大 那ba肯定就是从大到小
const numbersArray = [5, 8, 3, 10, 6]
console.log(numbersArray.sort((a, b) => b - a).toString())
控制台输出 10,8,6,5,3