JavaScript - TypedArray subarray() 方法



JavaScript TypedArray subarray() 方法用于检索此类型化数组的子部分。它不会修改原始类型化数组,但会返回一个新的类型化数组对象。它接受两个参数,用于指定类型化数组中元素的位置(索引)。

语法

以下是 JavaScript TypedArray subarray() 方法的语法 -


 subarray(begin, end)

参数

此方法接受两个名为 'begin' 和 'end' 的可选参数,如下所述 -

  • begin − 它是元素 at 开始的起始位置。
  • end − 它是元素位于 end(不包括)的结束位置。

返回值

此方法返回一个新的类型化数组对象。

示例 1

如果同时省略 'begin' 和 'end' 参数,此方法将返回一个新的类型化数组对象,该对象包含原始类型化数组的所有元素。因此,如果您不指定任何范围,它实质上会创建整个数组的副本。

在下面的程序中,我们使用 JavaScript TypedArray subarray() 方法来检索这个类型化数组 [1, 2, 3, 4, 5] 的子部分。


<html>
<head>
   <title>JavaScript TypedArray subarray() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 4, 5]);
      document.write("Original typed array: ", T_array);
      let new_t_array = new Uint8Array([]);
      new_t_array = T_array.subarray();
      document.write("<br>New typed array: ", new_t_array);
   </script>    
</body>
</html>

输出

上面的程序返回一个新的类型化数组,如下所示:[1, 2, 3, 4, 5]。

Original typed array: 1,2,3,4,5
New typed array: 1,2,3,4,5

示例 2

如果我们省略 end 参数并仅传递 'begin' 参数,则此方法将返回一个新的类型化数组,该数组从指定的 begin 位置开始,直到最后一个元素。

在此示例中,我们对类型化数组使用 subarray() 方法来检索此类型化数组的子部分 [10, 20, 30, 40, 50, 60, 70, 80]。子数组从指定的起始位置 2 开始。


<html>
<head>
   <title>JavaScript TypedArray subarray() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([10, 20, 30, 40, 50, 60, 70, 80]);
      document.write("Original typed array: ", T_array);
      const begin = 2;
      document.write("<br>Begin at: ", begin);
      let new_t_array = new Uint8Array([]);
      new_t_array = T_array.subarray(begin);
      document.write("<br>New typed array: ", new_t_array);
   </script>    
</body>
</html>

输出

执行上述程序后,它将返回一个新的类型化数组,如下所示:[30, 40, 50, 60, 70, 80]。

Original typed array: 10,20,30,40,50,60,70,80
Begin at: 2
New typed array: 30,40,50,60,70,80

示例 3

如果我们将 'begin' 和 'end' 参数都传递给此方法,它将返回一个新的类型化数组,该数组从指定的开始位置开始,并一直延伸到结束位置,但不包括结束位置。

在下面的程序中,我们在类型化数组上使用 subarray() 方法来检索这个类型化数组的子部分 [2, 4, 6, 8, 10, 12, 14, 16, 18, 20],从位置 4 开始,到位置 8 之前结束。


<html>
<head>
   <title>JavaScript TypedArray subarray() Method</title>
</head>
<body>
   <script>
      const even_t_array = new Uint8Array([2, 4, 6, 8, 10, 12, 14, 16, 18, 20]);
      document.write("Original typed array: ", even_t_array);
      const begin = 4;
      const end = 8;
      document.write("<br>Begin at: ", begin);
      document.write("<br>End at: ", end);
      let new_t_array = new Uint8Array([]);
      new_t_array = even_t_array.subarray(begin, end);
      document.write("<br>New typed array: ", new_t_array);
   </script>    
</body>
</html>

输出

一旦执行了上面的程序,它就会返回一个新的类型化数组 -

Original typed array: 2,4,6,8,10,12,14,16,18,20
Begin at: 4
End at: 8
New typed array: 10,12,14,16