JavaScript - Array sort() 方法



JavaScript 的 Array.sort() 函数用于对数组元素进行排序。默认情况下,此方法将数组元素转换为字符串,然后根据其 UTF-16 代码单元值对其进行排序。

此方法接受单个参数:“compareFunction”,它会覆盖默认的排序行为。比较函数用于确定元素的排序顺序(可以是升序或降序)。

如果要对数组中的元素进行排序而不修改原始数组,请使用 JavaScript Array.toSorted() 方法。

语法

以下是 JavaScript Array sort() 方法的语法:

array.sort(CompareFunction);

参数

此方法只接受一个参数,如下所述:

CompareFunction − 这是一个定义数组元素排序顺序的函数。此函数接受两个参数(AB),分别表示要进行比较的数组中的两个元素。

  • 如果 (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
广告