目录

JavaScript Array sort()

示例

排序数组:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
亲自试一试 »

排序然后反转顺序:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();
亲自试一试 »

描述

这个sort()对数组的元素进行排序。

这个sort()覆盖原始数组。

这个sort()按字母顺序和升序对元素进行排序。

也可以看看:

数组的reverse()方法

排序比较功能

按字母顺序排序对于字符串效果很好("Apple" 位于 "Banana" 之前)。

但是,对数字进行排序可能会产生不正确的结果。

"25" 比 "100" 大,因为 "2" 比 "1" 大。

您可以通过提供 "compare function" 来解决此问题(请参阅下面的示例)。


语法

array.sort( compareFunction)

参数

Parameter Description
compareFunction Optional.
A function that defines a sort order. The function should return a negative, zero, or positive value, depending on the arguments:
  • function(a, b){return a-b}

When sort() compares two values, it sends the values to the compare function, and sorts the values according to the returned (negative, zero, positive) value.

Example:

The sort function will sort 40 as a value lower than 100.

When comparing 40 and 100, sort() calls the function(40,100).

The function calculates 40-100, and returns -60 (a negative value).

返回值

有序项目的数组。


更多示例

按升序对数字进行排序:

const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});
亲自试一试 »

按降序对数字进行排序:

const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});
亲自试一试 »

求最小值:

const points = [40, 100, 1, 5, 25, 10];

// Sort the numbers in ascending order
points.sort(function(a, b){return a-b});

let lowest = points[0];
亲自试一试 »

求最高值:

const points = [40, 100, 1, 5, 25, 10];

// Sort the numbers in descending order:
points.sort(function(a, b){return b-a});

let highest = points[0];
亲自试一试 »

求最高值:

const points = [40, 100, 1, 5, 25, 10];

// Sort the numbers in ascending order:
points.sort(function(a, b){return a-b});

let highest = points[points.length-1];
亲自试一试 »

浏览器支持

sort()是 ECMAScript1 (ES1) 功能。

所有浏览器均完全支持 ES1 (JavaScript 1997):

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes Yes