教你正确掌握 Array 的 ES10.sort 方法

在前端开发中,Array 是我们经常使用的一种数据结构。而其中的 sort 方法,可以对数组中的元素进行排序,是我们经常使用的方法之一。而 ES10 中对 sort 方法进行了升级,增加了一些新的功能,本文将详细介绍这些新功能,并给出使用示例。

原有的 sort 方法

在介绍新功能之前,我们先来回顾一下原有的 sort 方法。

sort 方法可以接收一个函数作为参数,这个函数用于定义排序规则。如果不传入函数参数,则默认按照 Unicode 码位升序排序。

例如,对一个数字数组进行排序,可以这样写:

上面的代码中,传入的函数是 (a, b) => a - b,表示按照数字大小升序排序。

新功能一:稳定排序

在原有的 sort 方法中,如果对一个数组进行排序,相同的元素可能会发生位置交换,这个过程是不稳定的。

例如,对一个对象数组按照某个属性进行排序,可能会出现相同属性值的对象位置交换的情况:

可以看到,年龄相同的两个对象的位置发生了交换。

而在 ES10 中,sort 方法增加了一个新的参数 options,可以传入一个对象,其中的 stable 属性可以设置为 true,表示排序过程需要保持稳定。

例如,对上面的例子进行稳定排序,可以这样写:

可以看到,年龄相同的两个对象的位置没有发生交换,排序结果保持了稳定性。

新功能二:默认排序

在原有的 sort 方法中,如果不传入排序函数参数,则按照 Unicode 码位升序排序。

而在 ES10 中,sort 方法增加了一个新的参数 options,可以传入一个对象,其中的 numeric 属性可以设置为 true,表示默认按照数字大小排序。

例如,对一个包含数字和字符串的数组进行排序,可以这样写:

可以看到,按照数字大小排序后,字符串 '1''2' 都排在了数字 34 的前面。

总结

ES10 中对 sort 方法进行了升级,增加了稳定排序和默认排序两个新功能,使得 sort 方法更加灵活和方便。在实际开发中,可以根据实际需求选择合适的参数来使用 sort 方法,达到更好的排序效果。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658456b4d2f5e1655df0b1d1


纠错
反馈