📅  最后修改于: 2023-12-03 15:30:04.407000             🧑  作者: Mango
在 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()
函数如何比较元素。这个函数接受两个参数,这两个参数都是要比较的元素,然后返回一个数字:
对于数字数组,比较函数可能如下所示:
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 中按升序排序数组的介绍。