js数组升序排序实现
使用 Array.prototype.sort() 方法
默认情况下,sort() 方法将数组元素转换为字符串并按照 Unicode 码点排序。直接调用可能导致数字排序不准确。
const arr = [10, 5, 8, 1, 7];
arr.sort(); // 结果为 [1, 10, 5, 7, 8](错误)
自定义比较函数实现数字升序
通过传递比较函数确保数字正确排序,比较函数应返回负数、零或正数。
const arr = [10, 5, 8, 1, 7];
arr.sort((a, b) => a - b); // 结果为 [1, 5, 7, 8, 10]
字符串数组升序排序
对字符串数组可直接使用默认排序,或通过 localeCompare 实现更精确的字母顺序。
const strArr = ['banana', 'apple', 'cherry'];
strArr.sort(); // 结果为 ['apple', 'banana', 'cherry']
对象数组按属性升序排序
通过比较函数指定对象属性实现排序。
const users = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 20 }
];
users.sort((a, b) => a.age - b.age);
// 结果按 age 升序排列
避免修改原数组的排序实现
使用扩展运算符或 slice() 创建新数组再排序,保持原数组不变。

const original = [3, 1, 4];
const sorted = [...original].sort((a, b) => a - b);
// original 仍为 [3, 1, 4],sorted 为 [1, 3, 4]






