如何使用 JavaScript 对数值数组进行排序?
JavaScript Array.sort() 方法用于对数组元素进行就地排序并返回排序后的数组。此函数以字符串格式对元素进行排序。它适用于字符串数组,但不适用于数字。例如:如果数字按字符串排序,则“75”大于“200”。
例子:
Input : [12, 25, 31, 23, 75, 81, 100]
Wrong Output : [100, 12, 23, 25, 31, 75, 81]
Correct Output : [12, 23, 25, 31, 75, 81, 100]
示例:此示例以字符串格式对数组元素进行排序。
javascript
javascript
javascript
javascript
输出:
Original Array
12,25,31,23,75,81,100
After Sorting in Ascending Order
100,12,23,25,31,75,81
那么,如何对数字数组元素进行排序呢?
有两种方法可以按升序对数字数组进行排序。
- 使用比较函数
- 通过创建循环
使用比较函数:我们可以创建一个返回负值、零或正值的比较函数。
句法:
function(a, b){return a - b}
- 负值 ( a > b) => a 将放在 b 之前
- 零值 (a == b) => 无变化
- 正值 (a < b) => a 将放在 b 之后
示例:本示例使用比较函数对数组元素进行升序排序。
javascript
输出:
Original Array
12,25,31,23,75,81,100
After sorting in Ascending order
12,23,25,31,75,81,100
现在,我们想按降序对数组进行排序,而不是更改比较函数。
句法:
function(a, b){return b - a}
- 负值 ( b < a) => a 将放在 b 之后
- 零值 (a == b) => 无变化
- 正值 (b > a ) => a 将放在 b 之前
示例:本示例使用比较函数对数组元素进行降序排序。
javascript
输出:
Original Array
12,25,31,23,75,81,100
After sorting in Ascending order
100,81,75,31,25,23,12
创建循环:我们还可以使用循环对数组元素进行排序。在这里,我们将使用冒泡排序(简单排序技术)对数组元素进行升序排序。
例子:
javascript
输出:
Original Array
1,15,10,45,27,100
Sorted Array
1,10,15,27,45,100