JavaScript - 数组 sort() 方法
JavaScript Array.sort() 函数用于对数组元素进行排序。默认情况下,此方法将数组元素转换为字符串,然后根据其 UTF-16 代码单元值进行排序。
此方法接受一个参数:compareFunction,它会覆盖默认的排序行为。compare 函数用于确定元素的排序顺序(可以是升序或降序)。
如果要在不修改原始数组的情况下对数组中的元素进行排序,请使用 JavaScript Array.toSorted() 方法。
语法
以下是 JavaScript Array sort() 方法的语法 -
array.sort(CompareFunction);
参数
此方法仅接受一个参数,如下所述 -
CompareFunction - 这是一个定义数组元素排序顺序的函数。此函数接受两个参数(A 和 B),分别代表数组中用于比较的两个元素。
- 如果 (A B) < 0(负值),则 A 优先。
- 如果 (A B) = 0,则不进行任何更改。
- 如果 (A B) > 0,即正值,则 B 优先。
返回值
此方法对数组元素进行原地排序并返回排序后的数组。
示例
示例 1
在下面的示例中,我们没有向 JavaScript 数组 sort() 函数传递任何参数。因此,sort() 方法将元素转换为字符串,然后比较它们的 UTF-16 码元序列并返回结果。
<html>
<body>
<p id="demo"></p>
<script>
const array = [10, 25, 5, 20, 15];
let result = array.sort();
document.getElementById("demo").innerHTML = result;
</script>
</body>
</html>
输出
正如我们在输出中看到的,sort() 方法根据数组元素的 UTF-16 码元将其作为字符串排序。
10,15,20,25,5
示例 2
这里,我们传递了一个比较函数 (a, b) => {return a - b},该函数按升序对数组元素进行排序。
<html>
<body>
<p id="demo"></p>
<script>
const array = [10, 25, 5, 20, 15];
array.sort((a,b) => {return a-b});
document.getElementById("demo").innerHTML = array;
</script>
</body>
</html>
程序执行后,数组元素将按升序排列。
输出
5,10,15,20,25
示例 3
这里,我们传递了一个比较函数 (a, b) => {return b - a},该函数按降序对数组元素进行排序。
<html>
<body>
<p id="demo"></p>
<script>
const array = [10, 25, 5, 20, 15];
array.sort((a,b) => {return b-a});
document.getElementById("demo").innerHTML = array;
</script>
</body>
</html>
程序执行后,数组元素将按降序排列。
输出
25,20,15,10,5
示例 4
如果数组元素为"字符串值",sort() 方法将按字典顺序(即升序)对它们进行排序。
<html>
<body>
<p id="demo"></p>
<script>
const animals = ["Lion", "Cheetah", "Tiger", "Elephant", "Dinosaur"];
let result = animals.sort();
document.getElementById("demo").innerHTML = result;
</script>
</body>
</html>
执行程序后,我们可以看到数组元素按升序排列。
输出
Cheetah,Dinosaur,Elephant,Lion,Tiger

