当我们需要对 JavaScript 数组进行排序时,可以使用 JavaScript 数组提供的排序函数。这个排序函数的具体使用方法,以及有哪些可选参数等,本文会进行详细讲解。
JavaScript 数组排序函数
sort() 方法
sort() 方法是 JavaScript 数组提供的排序函数。使用该函数可以实现对数组中元素的排序,可以对字符串,数字及其他类型的数据进行排序。sort() 方法会执行原地排序,也就是不会创建新的数组,而是在原数组的基础上重新排序。
sort() 方法不需要参数,其默认排序方式是如下的字符串排序方式。
- 如果比较的数据是字符串,那么 sort() 方法按照字符编码中的顺序进行排序。
- 如果比较的数据是数字,那么 sort() 方法将比较两个数字,且按照数字的大小进行排序。
sort() 方法会返回经过排序的原数组,不会创建新的数组。代码示例如下。
const arr = [3,1,4,2,5];
arr.sort();
console.log(arr); // 输出:[1,2,3,4,5]
自定义排序
如果需要对数组中的数据按照规定的排序方式进行排序,可以在 sort() 方法中传入比较函数。该自定义的比较函数会一次接收两个比较元素,然后根据规定的排序方式返回一个值。如果返回一个小于零的值,那么第一个元素会被排列到第二个元素前面;如果返回一个大于零的值,那么两个元素就被互相交换;如果返回零,那么两个元素的顺序就不会变化。这个自定义的比较函数可以实现升序排列、降序排列及其他类型的排序方式。
下面给出两个示例来说明如何使用比较函数进行自定义排序。
升序排列
将一个随机乱序的数组按升序排列,需要定义如下的比较函数,然后将其传递给 sort() 方法中。
function compare(a, b) {
if(a < b) {
return -1;
}
if(a > b) {
return 1;
}
return 0;
}
const arr = [3,1,4,2,5];
arr.sort(compare);
console.log(arr); // 输出:[1,2,3,4,5]
降序排列
将一个随机乱序的数组按降序排列,只需要将升序排序的比较函数进行修改即可。将返回值进行反转即可实现降序排列。
function compare(a, b) {
if(a < b) {
return 1;
}
if(a > b) {
return -1;
}
return 0;
}
const arr = [3,1,4,2,5];
arr.sort(compare);
console.log(arr); // 输出:[5,4,3,2,1]
总结
本文介绍了使用 JavaScript 数组中的 sort() 方法对数组进行排序的方法及其参数,以及如何通过自定义比较函数实现各种规则的数组排序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 数组排序函数 - Python技术站