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 Array.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