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