📅  最后修改于: 2023-12-03 15:16:12.287000             🧑  作者: Mango
在 Javascript 中,我们可以使用 Array.prototype.sort()
方法对数组进行排序。该方法可以接受一个可选的比较函数,用于自定义排序规则。
以下为 sort()
方法的基本用法:
const myArray = [3, 2, 1];
myArray.sort();
console.log(myArray); // [1, 2, 3]
如果数组中的元素并不都是数字,或者默认排序规则不符合需求,我们可以通过传入一个比较函数来自定义排序规则。
比较函数应该返回一个负数、零或正数,表示第一个参数小于、等于或大于第二个参数。
以下为按数字升序排序的示例代码:
const myArray = [3, 2, 1];
myArray.sort((a, b) => a - b);
console.log(myArray); // [1, 2, 3]
以下为按字符串升序排序的示例代码:
const myArray = ['c', 'b', 'a'];
myArray.sort();
console.log(myArray); // ['a', 'b', 'c']
以下为按对象属性升序排序的示例代码:
const myArray = [
{ name: 'Bob', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Charlie', age: 35 }
];
myArray.sort((a, b) => a.age - b.age);
console.log(myArray);
// [
// { name: 'Alice', age: 25 },
// { name: 'Bob', age: 30 },
// { name: 'Charlie', age: 35 }
// ]
在默认情况下,sort()
方法会将元素转换为字符串,然后基于字符串进行排序。因此,在按数字排序时应该使用比较函数,否则会出现以下错误结果:
const myArray = [3, 21, 2];
myArray.sort();
console.log(myArray); // [2, 21, 3]