js实现升序
使用 sort() 方法实现升序
在 JavaScript 中,数组的 sort() 方法默认按字符串 Unicode 码点排序。若需对数字数组升序排序,需传入比较函数:
const numbers = [3, 1, 4, 2, 5];
numbers.sort((a, b) => a - b);
console.log(numbers); // 输出: [1, 2, 3, 4, 5]
比较函数返回 a - b 时,若结果为正,a 排在 b 后;若为负,a 排在 b 前;若为 0,顺序不变。

对对象数组按属性升序
若需根据对象属性排序,可在比较函数中访问属性值:
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 20 },
{ name: 'Charlie', age: 30 }
];
users.sort((a, b) => a.age - b.age);
console.log(users);
// 输出: [{name: 'Bob', age: 20}, {name: 'Alice', age: 25}, {name: 'Charlie', age: 30}]
字符串数组的升序排序
直接调用 sort() 方法即可按字母顺序升序排列:

const fruits = ['banana', 'apple', 'orange'];
fruits.sort();
console.log(fruits); // 输出: ['apple', 'banana', 'orange']
注意:该方法区分大小写(大写字母优先),可通过 toLowerCase() 处理大小写问题。
自定义复杂排序规则
对于非数字或字符串的数据,可通过比较函数实现自定义逻辑。例如按字符串长度升序:
const words = ['cat', 'elephant', 'dog'];
words.sort((a, b) => a.length - b.length);
console.log(words); // 输出: ['cat', 'dog', 'elephant']
注意事项
- 原数组修改:
sort()会修改原数组,如需保留原数组,需先复制:const original = [3, 1, 2]; const sorted = [...original].sort((a, b) => a - b); - 稳定性:现代 JavaScript 引擎通常保证排序稳定性(相同值顺序不变),但依赖此特性时需确认环境支持。






