js数组升序排序实现
使用 sort() 方法实现升序排序
JavaScript 数组的 sort() 方法默认按 Unicode 码点排序,对数字数组需传入比较函数。比较函数返回 a - b 时实现升序排列:
const numbers = [3, 1, 4, 1, 5, 9];
numbers.sort((a, b) => a - b);
console.log(numbers); // 输出: [1, 1, 3, 4, 5, 9]
对字符串数组升序排序
字符串数组可直接使用 sort() 方法,默认按字母顺序升序排列:
const fruits = ['banana', 'apple', 'orange'];
fruits.sort();
console.log(fruits); // 输出: ['apple', 'banana', 'orange']
处理包含 undefined 的数组
sort() 方法会将 undefined 元素排到数组末尾,其他元素正常排序:
const mixed = [3, undefined, 1, undefined, 2];
mixed.sort((a, b) => a - b);
console.log(mixed); // 输出: [1, 2, 3, undefined, undefined]
对象数组按属性升序排序
通过比较函数指定对象属性实现排序:
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 21 },
{ name: 'Charlie', age: 23 }
];
users.sort((a, b) => a.age - b.age);
console.log(users);
// 输出: [
// {name: 'Bob', age: 21},
// {name: 'Charlie', age: 23},
// {name: 'Alice', age: 25}
// ]
保持原始数组不变的排序方式
使用扩展运算符或 slice() 创建副本后再排序,避免修改原数组:
const original = [5, 2, 8];
const sorted = [...original].sort((a, b) => a - b);
console.log(original); // [5, 2, 8]
console.log(sorted); // [2, 5, 8]






