📅  最后修改于: 2023-12-03 15:23:10.034000             🧑  作者: Mango
在 JavaScript 中,可以使用 Array.prototype.sort()
方法对数组进行排序。
array.sort([compareFunction])
array
:需要排序的数组。compareFunction
(可选):用于指定排序的函数。如果省略该参数,数组将按字母顺序排序。如果指定了该参数,数组将按照该参数进行排序。如果省略 compareFunction
参数,则 sort()
方法默认按照字母顺序进行排序。
const fruits = ['banana', 'apple', 'orange', 'grapes'];
fruits.sort();
console.log(fruits); // ['apple', 'banana', 'grapes', 'orange']
如果要按数字大小对数组进行排序,可以传入一个比较函数作为 compareFunction
参数。
const nums = [10, 5, 20, 15];
nums.sort((a, b) => a - b);
console.log(nums); // [5, 10, 15, 20]
如果要按对象属性对数组进行排序,可以在比较函数中使用对象属性来进行比较。
const persons = [
{ name: 'Tom', age: 18 },
{ name: 'Jerry', age: 22 },
{ name: 'Alice', age: 20 },
];
// 按照年龄从小到大排序
persons.sort((a, b) => a.age - b.age);
console.log(persons);
// 按照姓名进行排序
persons.sort((a, b) => a.name.localeCompare(b.name));
console.log(persons);
sort()
方法会修改原来的数组,没有返回新的数组。compareFunction
函数返回负数,则 a
会排在 b
前面,如果返回正数,则 b
会排在 a
前面,如果返回 0,则 a
和 b
不会变换顺序。a
和 b
是字符串,localeCompare()
方法可以进行字母顺序比较,详见 MDN 文档:String.prototype.localeCompare()。sort()
方法是 JavaScript 中对数组进行排序的常用方法,可以通过指定比较函数来实现各种类型的排序。开发者在使用 sort()
方法时要注意,该方法会修改原数组。