📌  相关文章
📜  como ordenar um array em ordem crescente javascript (1)

📅  最后修改于: 2023-12-03 15:30:04.407000             🧑  作者: Mango

如何在 JavaScript 中按升序排序数组

在 JavaScript 中,您可以使用 sort() 函数对数组进行排序。该函数将数组中的所有元素作为字符串看待,并根据它们之间的 Unicode 顺序对它们进行排序。要按数字排序,您需要提供一个比较函数来告诉 sort() 函数如何比较元素。

使用数组的 sort() 方法

要对数组进行升序排序,最简单的方法是使用 sort() 方法,如下所示:

const arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
arr.sort();
console.log(arr); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

然而,这样排序的数组是按照 Unicode 字符串排序的,而不是按照数字排序的。

提供一个比较函数

您可以通过提供一个比较函数来告诉 sort() 函数如何比较元素。这个函数接受两个参数,这两个参数都是要比较的元素,然后返回一个数字:

  • 如果第一个参数应该排在第二个参数之前,返回一个负数。
  • 如果第一个参数应该排在第二个参数之后,返回一个正数。
  • 如果两个参数相等,返回 0。

对于数字数组,比较函数可能如下所示:

function compareNumbers(a, b) {
  return a - b;
}

const arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
arr.sort(compareNumbers);
console.log(arr); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

这个比较函数使用减法运算符(-)将第一个参数减去第二个参数。如果结果是负数,则第一个参数应该排在第二个参数之前。如果结果是正数,则第一个参数应该排在第二个参数之后。如果结果是 0,则两个参数相等。

使用箭头函数简化代码

如果您使用 compareNumbers 函数仅用一次,请考虑在调用排序方法时使用箭头函数:

const arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

使用箭头函数使代码更简洁明了。

以上是对如何在 JavaScript 中按升序排序数组的介绍。

参考