sort()方法详解
sort()方法详解
基本用法
sort()
方法可以接受一个可选的比较函数作为参数,用于定义排序规则。如果不提供比较函数,sort()
将默认按照字符串 Unicode 代码点的顺序进行排序。1
2
3
4
5
6const fruits = ['apple', 'banana', 'cherry', 'date'];
// 默认排序(按照Unicode代码点)
fruits.sort();
console.log(fruits); // 输出:['apple', 'banana', 'cherry', 'date']
自定义排序规则
要自定义排序规则,你可以传递一个比较函数作为
sort()
的参数。比较函数接受两个参数(通常称为a
和b
),用于比较这两个值。如果比较函数返回一个负数,表示a
应该排在b
之前;如果返回一个正数,表示b
应该排在a
之前;如果返回 0,表示a
和b
相等,它们的相对顺序不变。1
2
3
4
5
6
7
8
9const numbers = [42, 23, 6, 8, 19];
// 升序排序
numbers.sort((a, b) => a - b);
console.log(numbers); // 输出:[6, 8, 19, 23, 42]
// 降序排序
numbers.sort((a, b) => b - a);
console.log(numbers); // 输出:[42, 23, 19, 8, 6]
注意事项
原地修改:
sort()
方法会原地修改数组,而不是创建一个新的数组。如果你需要不修改原数组的排序结果,可以先复制数组。默认排序:如果不提供比较函数,
sort()
会按照字符串 Unicode 代码点进行排序,这可能导致数字不按照你的预期排序。比较函数:自定义排序规则时,比较函数应该返回一个数值,而不是布尔值。如果返回布尔值,排序可能会出现意外结果。
不稳定排序:JavaScript 的
sort()
方法是不稳定的,这意味着对于相等的元素,排序后它们的相对顺序可能会改变。
总之,sort()
方法是 JavaScript 数组排序的核心方法,了解如何使用比较函数可以让你更灵活地对数组进行排序。根据你的需求,你可以实现升序、降序或自定义排序规则。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 暮辞のBlog!
评论