JavaScript 面试题
目录

JavaScript 中如何对数组进行排序?

· 约 4 分钟读完 · 第 311 / 507 章

推荐答案

在 JavaScript 中,可以使用 Array.prototype.sort() 方法对数组进行排序。默认情况下,sort() 方法会将数组元素转换为字符串,然后按照 Unicode 码点顺序进行排序。为了对数字数组进行正确的排序,通常需要提供一个比较函数。

本题详细解读

sort() 方法的基本用法

sort() 方法是 JavaScript 数组的原生方法,用于对数组的元素进行排序。默认情况下,sort() 会将数组元素转换为字符串,然后按照 Unicode 码点顺序进行排序。这意味着对于数字数组,默认的排序结果可能不符合预期。

使用比较函数进行排序

为了对数字数组进行正确的排序,通常需要提供一个比较函数。比较函数接收两个参数 a 和 b,分别代表数组中的两个元素。比较函数应返回以下值:

  • 如果 a 小于 b,返回一个负数。
  • 如果 a 等于 b,返回 0。
  • 如果 a 大于 b,返回一个正数。

降序排序

如果需要降序排序,只需在比较函数中返回 b - a 即可。

对对象数组进行排序

sort() 方法也可以用于对对象数组进行排序。只需在比较函数中指定对象的某个属性进行比较即可。

稳定性

从 ECMAScript 2019 开始,sort() 方法被要求是稳定的,即对于具有相同排序键的元素,它们的相对顺序在排序前后保持不变。

在这个例子中,Alice 和 Bob 的年龄相同,排序后它们的相对顺序保持不变。