JavaScript - TypedArray toSorted() 方法
JavaScript TypedArray 的 toSorted() 方法是 sort() 方法的复制版本。它按升序对类型化数组元素进行排序,并返回一个新的类型化数组。它接受一个可选参数。
可选参数是一个 函数,它接受两个参数并定义元素的排序顺序。您可以定义自己的排序顺序。例如:如果返回 a > b,则排序顺序为 升序。如果返回 a < b,则排序顺序将为降序。
语法
以下是 JavaScript TypedArray toSorted() 方法的语法 -
toSorted(compareFn)
参数
此方法接受一个名为"compareFn"的参数,该参数如下所述 -
compareFn - 一个定义排序顺序或类型化数组元素的函数。
此函数还接受两个名为"a"和"b"的参数。以下是每个参数的描述 -
a - 用于比较的第一个值。
b - 用于比较的第二个值。
返回值
此方法返回一个新的类型化数组,其中元素按升序排列。
示例
示例 1
当省略 compareFn 参数时,TypedArray 实例的 toSorted() 方法默认按数字对元素进行排序。
在下面的示例中,我们使用 JavaScript TypedArray 的 toSorted() 方法创建一个新的类型化数组,其中元素按升序排列。我们取这个类型数组的一个实例:[15, 10, 20, 10, 5, 12, 4]。
<html>
<head>
<title>JavaScript TypedArray toSorted() Method</title>
</head>
<body>
<script>
const T_array = new Uint8Array( [15, 10, 20, 10, 5, 12, 4]);
document.write("Typed array: ", T_array);
const sorted_arr = T_array.toSorted();
document.write("<br>Sorted(in ascending order) typed array: ", sorted_arr);
</script>
</body>
</html>
输出
上述程序返回排序后的类型化数组,格式为 −
Typed array: 15,10,20,10,5,12,4 Sorted(in ascending order) typed array: 4,5,10,10,12,15,20
示例 2
如果我们将 compareFn 作为参数传递给此方法,它会根据 compareFn 函数定义的排序顺序对类型化数组元素进行排序。
以下是 JavaScript TypedArray toSorted() 方法的另一个示例。我们创建一个名为 descOrder() 的函数,该函数定义元素的 降序 排序顺序,然后我们将该函数作为参数传递,以创建一个新的类型化数组,其中元素按降序排序,并采用该类型数组的一个实例 [15, 10, 20, 10, 5, 12, 4]。
<html>
<head>
<title>JavaScript TypedArray toSorted() Method</title>
</head>
<body>
<script>
function desc(a, b){
return a < b;
}
const T_array = new Uint8Array( [15, 10, 20, 10, 5, 12, 4]);
document.write("Typed array: ", T_array);
const sorted_arr = T_array.toSorted(desc);
document.write("<br>Sorted(in descending order) typed array: ", sorted_arr);
</script>
</body>
</html>
输出
执行上述程序后,它将返回一个新的类型化数组,其元素按降序排列,如下所示:
Typed array: 15,10,20,10,5,12,4 Sorted(in descending order) typed array: 20,15,12,10,10,5,4

