sort() 方法就地对数组的元素进行排序并返回排序后的数组。 默认排序顺序是升序,建立在将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列的基础上。
排序的时间和空间复杂度无法保证,因为它取决于实现。
使用 sort 方法按字母顺序给数组排序
sort 方法可以根据回调函数对数组元素进行排序。
|
|
|
|
JavaScript 的默认排序方法是 Unicode 值顺序排序,有时可能会得到意想不到的结果。
因此,建议提供一个回调函数来指定如何对数组项目排序。
这个回调函数通常叫做 compareFunction,它根据 compareFunction 的返回值决定数组元素的排序方式:
-
如果两个元素 a 和 b,compareFunction(a,b) 返回一个比 0 小的值,那么 a 会在 b 的前面。
-
如果两个元素 a 和 b,compareFunction(a,b) 返回一个比 0 大的值,那么 b 会在 a 的前面。
-
如果两个元素 a 和 b,compareFunction(a,b) 返回等于 0 的值,那么 a 和 b 的位置保持不变。
在 alphabeticalOrder 函数中使用 sort 方法对 arr 中的元素按照字母顺序排列。 该函数应返回一个排序的数组。
|
|
在不更改原始数组的前提下返回排序后的数组
sort 方法会产生改变原始数组中元素顺序的副作用。
换句话说,它会改变数组的位置。
避免这种情况的一种方法是先将空数组连接到正在排序的数组上(记住 slice 和 concat 返回一个新数组),再用sort方法。
在 nonMutatingSort 函数中使用 sort 方法对数组中的元素按升序进行排列。 函数不能改变 globalArray 变量,应返回一个新数组。
|
|