📜  array.sort - Javascript (1)

📅  最后修改于: 2023-12-03 14:39:21.031000             🧑  作者: Mango

Array.sort() - JavaScript

简介

Array.sort() 是 JavaScript 中数组的方法,它用于对数组元素进行排序。默认情况下 sort() 方法将数组元素转换为字符串,并按 UTF-16 代码单元值的顺序对它们进行排序。

使用

sort() 方法可以接受一个可选的排序函数作为参数,该函数用于指定数组元素按照什么顺序排序。如果省略排序函数,则默认使用排序函数。

// 使用 sort() 方法对数组进行排序
const fruits = ['apple', 'banana', 'orange', 'kiwi'];
fruits.sort();
console.log(fruits); // ["apple", "banana", "kiwi", "orange"]

如果你要根据数组元素的数值大小进行排序,可以使用排序函数。

// 使用排序函数对数组进行排序
const numbers = [3, 6, 2, 8, 1, 9, 5, 7, 4];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

排序函数需要接受两个参数,它们分别是待比较的数组元素。

  • 如果 a < b,则返回一个负数,表示 ab 前面。
  • 如果 a > b,则返回一个正数,表示 ab 后面。
  • 如果 a === b,则返回 0,表示两个元素相等。
反向排序

如果你需要反向排序数组,可以先使用 sort() 方法将其正向排序,再使用 reverse() 方法将其翻转。

// 反向排序数组
const numbers = [3, 6, 2, 8, 1, 9, 5, 7, 4];
numbers.sort((a, b) => a - b).reverse();
console.log(numbers); // [9, 8, 7, 6, 5, 4, 3, 2, 1]
注意事项

sort() 方法会改变原来的数组,而不是返回一个新的排序后的数组。

如果排序的数组中含有 undefined 或者 null,则这些值会被认为是小于任何其他非 null 数值。

// 排序数组中含有 undefined 和 null 的情况
const numbers = [5, 2, undefined, 7, null, 4, 8];
numbers.sort();
console.log(numbers); // [2, 4, 5, 7, 8, undefined, null]

为了避免这种情况,你需要使用自定义的排序函数。

结论

Array.sort() 是 JavaScript 中强大的数组排序方法,它可以按照默认方式排序,也可以自定义排序函数进行排序。在排序过程中需要注意一些细节,避免产生不必要的错误。