如何在 ECMAScript 2019 中使用 Array.sort 实现不同类型数据的排序?

阅读时长 4 分钟读完

在编程过程中,我们常常需要对数组进行排序操作。ECMAScript 2019 引入了一种新的 Array.sort 方法,它能够方便地对不同类型的数据进行排序。

Array.sort() 方法简介

Array.sort() 方法是 JavaScript 数组方法之一,用于对数组元素进行排序,默认按照 UTF-16 编码的顺序进行排序(即按字母表顺序排序)。sort() 方法会改变原数组,同时返回排序后的数组。

sort() 方法还可以接收一个比较函数作为参数,该函数决定元素排序的方式。如果没有传递比较函数,则 sort() 方法将对数组元素进行默认排序。

下面让我们来看一下如何使用 Array.sort() 方法来实现不同类型数据的排序。

实现方法

1. 对字符串进行排序

对字符串进行排序,我们只需要将 sort() 方法的参数省略掉或者传递一个空函数。由于字符串比较是按照 UTF-16 编码的顺序进行排序的,所以 sort() 方法可以直接对字符串进行排序。

2. 对数字进行排序

对数字进行排序,需要传入一个比较函数。这里我们可以直接使用 ES6 中的箭头函数,它的语法简洁而且易于理解。

我们也可以通过比较两个数字的字符串形式来实现排序:

这里使用了 String.prototype.localeCompare() 方法比较两个数字的字符串形式。

3. 对对象进行排序

对对象进行排序稍微有些复杂,我们需要指定对象的属性进行排序。

-- -------------------- ---- -------
----- ---------- - -
    - ----- ------ ---- -- --
    - ----- ------ ---- -- --
    - ----- -------- ---- -- -
--

------------------- -- -- ----- - -------

------------------------
--
---
-
  - ----- -------- ---- -- --
  - ----- ------ ---- -- --
  - ----- ------ ---- -- -
-
--

这里传入的比较函数是按照对象的 age 属性进行升序排序。如果要实现降序排序,只需要修改比较函数即可。

-- -------------------- ---- -------
----- ---------- - -
    - ----- ------ ---- -- --
    - ----- ------ ---- -- --
    - ----- -------- ---- -- -
--

------------------- -- -- ----- - -------

------------------------
--
---
-
  - ----- ------ ---- -- --
  - ----- ------ ---- -- --
  - ----- -------- ---- -- -
-
--

总结

通过本文的介绍,我们了解了如何在 ECMAScript 2019 中使用 Array.sort() 方法对不同类型的数据进行排序。虽然 sort() 方法在实现上很简单,但是通过各种场景的演示,我们可以发现它具有广泛的应用价值和必要性。在实际开发中,能够熟练使用 sort() 方法将极大地提高程序员的效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651b749395b1f8cacd31c90e

纠错
反馈