js数组升序排序实现
使用 sort() 方法
JavaScript 数组的 sort() 方法默认将元素转换为字符串并按 Unicode 码点排序。为实现数字升序排序,需传入比较函数:
const arr = [3, 1, 4, 2];
arr.sort((a, b) => a - b);
console.log(arr); // 输出: [1, 2, 3, 4]
比较函数返回负值表示 a 应排在 b 前,正值反之,零则保持顺序。
对字符串数组排序
字符串数组可直接使用 sort() 方法,默认按字典序升序排列:
const strArr = ['banana', 'apple', 'cherry'];
strArr.sort();
console.log(strArr); // 输出: ['apple', 'banana', 'cherry']
对对象数组按属性排序
通过比较函数指定对象属性进行排序:
const users = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 20 }
];
users.sort((a, b) => a.age - b.age);
console.log(users); // 按 age 升序输出
保持原数组不变的排序
使用扩展运算符或 slice() 创建副本后再排序:
const original = [5, 2, 9];
const sorted = [...original].sort((a, b) => a - b);
console.log(original); // 原数组不变: [5, 2, 9]
console.log(sorted); // 新排序数组: [2, 5, 9]
处理混合类型数组
混合类型数组需在比较函数中处理类型差异:
const mixed = [1, '2', 3, '10'];
mixed.sort((a, b) => Number(a) - Number(b));
console.log(mixed); // 输出: [1, '2', 3, '10']






