JavaScript TypedArray toSorted() 方法是 sort() 方法的复制版本。它按升序对类型化数组元素进行排序,并返回一个新的类型化数组。它接受一个可选参数。
optional 参数是一个函数,它接受两个参数并定义元素的排序顺序。您可以定义自己的排序顺序。例如:如果它返回 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
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
Sorted(in descending order) typed array: 20,15,12,10,10,5,4