参考文档
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
原因
sort()的默认排序顺序是元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的。
简单来说,默认转换为字符串进行比较,而字符串比较是逐个字母比较,所以数字也是逐个比较
案例
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
返回值
Array.sort() 返回排序后的数组,改变原数组。
如何对数字数组进行排序
普通函数 array.sort( function (a, b) { return b-a } );
箭头函数 array.sort( (a, b) => b-a );