ES12 中 Array 新增的 sort() 功能

阅读时长 4 分钟读完

在 ES12 中,Array 新增了一个 sort() 功能,用于对数组进行排序。此功能虽然并非全新程式语言中的创新,但对于前端开发人员而言,它是非常实用的。本文将详细介绍该功能,并提供示例代码,以帮助读者更好地了解和应用。

sort() 快速概述

sort() 是 Array 对象的一个方法,用于对数组中的元素进行排序。排序可以是升序或降序。在默认情况下,sort() 方法将字符串转化为 Unicode,并按每个字符的 Unicode 代码点值的顺序进行排序。在进行数字排序的情况下,sort() 方法可通过比较函数来指定数字排序的规则。

sort() 方法的内部机制

sort() 方法有四个参数。前两个是可选的,分别为 compareFunction 和 sortOrder。第三个参数是未用的,并且已弃用;第四个是可选的,并包含一个未排序的数组,被称为 stabilizingSortedArray。该数组用于使排序更加稳定。

sort() 方法对数组进行重新排列,它不将排序的结果创建成一个新的数组。相反,它修改了原来的数组。在这个过程中,sort() 方法执行的是修改数组原始顺序的行为。排序后的数组仅包含原始数组中的引用。原始数组在此过程中不会被复制或克隆。

sort() 方法的参数

compareFunction

compaireFunction 是一个可选的函数参数。它定义了排序规则,并返回一个整数值,指示元素 A 与元素 B 之间的关系。compaireFunction 参数采用两个参数: A 和 B,它们与排序数组中的两个值相对应。compareFunction 在调用之后返回大于 0,小于 0 或等于 0 的整数值。

如果 compareFunction 未提供,则 sort() 将按字符串 Unicode 码点进行排序,在排序数组中进行升序排列。

下面的代码段展示了如何使用 compareFunction 进行数字排序:

sortOrder

sortOrder 是一个可选的字符串参数,它可以是“asc”或“desc”,用于确定排序的方向。默认排序是升序排列。“desc”将数组元素从高到低排列。

下面的示例说明了如何将数组按降序排列:

stabilizingSortedArray

stabilizingSortedArray 是未排序的数组,在 sort() 过程中用于使排序尽可能稳定。稳定排序意味着,如果排序前两个元素相同,则排序后它们的顺序应该保持不变。此数组是可选的,如果未提供,则在 sort() 过程中不考虑稳定性。

在实际应用中使用 sort()

ES12 中新增的 sort() 方法为前端开发人员提供了一种新的方式,使他们能够快速、简便地对数组进行排序。以下代码段展示了在实际应用中如何使用该方法:

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

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

输出:

在本示例中,people 变量是一个对象数组。我们使用 sort() 方法按年龄对这些人进行排序,并输出结果。使用如此简单的语法,我们能够快速获得所需的结果。

总结

在本文中,我们详细介绍了 ES12 中新增的 sort() 方法。我们了解了该方法的内部机制,并讨论了它的参数和用法。sort() 对于开发人员而言是一种非常强大的工具,可用于升序和降序排序数组。通过使用 compareFunction 和 sortOrder,我们可以轻松地控制排序行为,以便获得所需的结果。

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

纠错
反馈