排序 (Sort)
sort() 方法可以按特定顺序(升序或降序)对数组元素进行排序。
默认情况下,sort() 会将元素作为字符串排序,并根据 UTF-16 编码值进行升序排列。
语法
array.sort([compareFunction])
compareFunction(可选) :用于定义排序顺序的函数。如果省略,元素将按字符串表示的升序排列。
示例 1:按字符串排序
let city = ["California", "Barcelona", "Paris", "Kathmandu"];
let sortedCity = city.sort();
console.log(sortedCity);
// 结果: ['Barcelona', 'California', 'Kathmandu', 'Paris']
数字排序时可能会出现问题。例如,字符串 "35" 会被认为比 "100" 大,因为默认字符串比较按字符顺序进行,"3" 大于 "1"。
示例 2:使用比较函数进行数字排序
为了解决数字排序问题,可以提供一个比较函数。比较函数返回负值、零或正值来定义排序顺序:
返回负值:a 排在 b 前面
返回正值:a 排在 b 后面
返回 0:a 和 b 相等,顺序不重要
const points = [40, 100, 1, 5, 25, 10];
points.sort((a, b) => a - b);
console.log(points);
// 结果: [1, 5, 10, 25, 40, 100]
sort() 方法会修改原数组。