javascript 给数组排序
给数组排序是 JavaScript 中一项常见任务,可以通过多种方法实现。
排序方法
JavaScript 提供了以下内置排序方法:
- sort(): 对数组元素进行原地排序。
- sort((a, b) => …): 指定比较函数的自定义排序。
- sort(compareFunction): 指定比较函数的自定义排序。
使用 sort()
sort() 方法对数组元素进行原地排序。它使用 Unicode 字符串顺序将元素作为字符串进行比较。
const numbers = [5, 2, 1, 3]; numbers.sort(); // [1, 2, 3, 5]
使用 sort((a, b) => …)
sort() 的第二个变体允许指定一个比较函数。该函数接收两个数组元素作为参数,并返回一个指示它们相对顺序的值:
- -1:a 小于 b
- 0:a 等于 b
- 1:a 大于 b
例如,以下代码将数组按升序排序:
const numbers = [5, 2, 1, 3]; numbers.sort((a, b) => a - b); // [1, 2, 3, 5]
使用 sort(compareFunction)
sort() 的第三个变体允许指定一个与 sort((a, b) => …) 类似的比较函数,但以函数的形式。
const compareFunction = (a, b) => a - b; const numbers = [5, 2, 1, 3]; numbers.sort(compareFunction); // [1, 2, 3, 5]
自定义排序
比较函数可以根据需要进行定制,以执行特定的排序规则。例如,可以创建一个比较函数来按降序排序数组:
const compareFunction = (a, b) => b - a; const numbers = [5, 2, 1, 3]; numbers.sort(compareFunction); // [5, 3, 2, 1]
注意
使用 sort() 时,请记住以下事项:
- 它会原地修改数组。
- 它将数组中的元素强制转换为字符串进行比较。
- 比较函数的返回决定了元素的排序顺序。