js实现降序
数组降序排序
使用 Array.prototype.sort() 方法结合比较函数实现降序排列。默认情况下,sort() 方法按升序排列元素。
const arr = [5, 2, 8, 1, 4];
arr.sort((a, b) => b - a);
console.log(arr); // 输出: [8, 5, 4, 2, 1]
比较函数 (a, b) => b - a 返回正值时,a 会排在 b 后面,从而实现降序。
对象数组按属性降序
若需根据对象属性降序排列,需在比较函数中指定属性名。
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
users.sort((a, b) => b.age - a.age);
console.log(users);
// 输出: [{name: 'Bob', age: 30}, {name: 'Alice', age: 25}, {name: 'Charlie', age: 20}]
字符串数组降序
对字符串数组使用 localeCompare() 方法实现字典序降序。
const fruits = ['apple', 'banana', 'cherry'];
fruits.sort((a, b) => b.localeCompare(a));
console.log(fruits); // 输出: ['cherry', 'banana', 'apple']
保持原数组不变的降序
若需保留原数组,可先创建副本再排序。

const original = [3, 1, 4, 2];
const sorted = [...original].sort((a, b) => b - a);
console.log(original); // [3, 1, 4, 2]
console.log(sorted); // [4, 3, 2, 1]
注意事项
sort()方法会修改原数组。- 比较函数需返回数值:正数表示
a应排在b后,负数表示a应排在b前,零表示顺序不变。 - 对大型数组考虑性能时,可能需使用更高效的排序算法。






