JavaScript - TypedArray slice() 方法



JavaScript TypedArray 的slice() 方法会将原始 TypedArray 中提取的元素复制到一个新的 TypedArray 对象中,选择从起始索引到结束索引(不包括结束索引)的元素。startend 索引表示 TypedArray 中元素的位置。

此方法不会修改或更改原始 TypedArray,而是返回一个包含提取元素的新 TypedArray。如果我们为 start 参数传递负值,它将从 TypedArray 的末尾位置开始提取元素。例如,如果 start = -1,它将表示最后一个元素。

语法

以下是 JavaScript TypedArray slice() 方法的语法:

slice(start, end)

参数

此方法接受两个可选参数,名为“start”和“end”,如下所述:

  • start (可选) - 元素开始提取的基于零的索引。

  • end (可选) - 提取将停止的基于零的索引 (slice() 方法提取到该结束索引,但不包括该结束索引)。

返回值

此方法返回一个新的 TypedArray,其中包含原始 TypedArray 的提取元素。

示例

示例 1

如果我们省略“start”和“end”参数,slice() 方法将从零索引开始提取元素,并一直持续到原始 TypedArray 的最后一个索引。

在下面的程序中,我们使用 JavaScript slice() 方法将原始 TypedArray [1, 2, 3, 4, 5, 6, 7, 8] 的一部分提取到一个新的 TypedArray 对象中。由于我们没有为此方法指定 start 和 end 参数,因此它会复制原始数组中的所有元素。

<html>
<head>
   <title>JavaScript TypedArray slice() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
      document.write("Original TypedArray: ", T_array);
      
      //using the slice() method
      T_array.slice();
      document.write("<br>New TypedArray(after copying):", T_array);
   </script>    
</body>
</html>

输出

上述程序返回一个新的 TypedArray:[1, 2, 3, 4, 5, 6, 7, 8]。

Original TypedArray: 1,2,3,4,5,6,7,8
New TypedArray(after copying):1,2,3,4,5,6,7,8

示例 2

如果我们只为此方法传递start参数,它将从指定的起始位置提取元素,并一直提取到原始 TypedArray 的最后一个元素。

以下是 JavaScript TypedArray slice() 方法的另一个示例。在这种情况下,我们尝试从原始 TypedArray [10, 20, 30, 40, 50] 中提取元素,从指定的起始位置2开始,一直持续到最后一个元素。

<html>
<head>
   <title>JavaScript TypedArray slice() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([10, 20, 30, 40, 50]);
      document.write("Original TypedArray: ", T_array);
      const start = 2;
      document.write("<br>Start(extracting position) value: ", start);
      
      //creating new empty typed array
      let new_t_array = new Uint8Array([]);
      
      //using the slice() method
      new_t_array = T_array.slice(start);
      document.write("<br>New TypedArray(after copying): ", new_t_array);
   </script>    
</body>
</html>

输出

执行上述程序后,它将显示新的 TypedArray:[30, 40, 50]。

Original TypedArray: 10,20,30,40,50
Start(extracting position) value: 2
New TypedArray(after copying): 30,40,50

示例 3

如果我们为此方法传递'start''end'参数,它将从指定的'start'位置开始提取元素,并一直提取到'end'位置(不包括'end'位置)。

在这个例子中,我们使用 TypedArray slice() 方法从原始 TypedArray [20, 40, 60, 70, 90, 100, 120, 130] 中提取一部分的副本,从指定的起始位置3开始,到指定的结束位置6(不包括)。

<html>
<head>
   <title>JavaScript TypedArray slice() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([20, 40, 60, 70, 90, 100, 120, 130]);
      document.write("Original TypedArray: ", T_array);
      const start = 3;
      const end = 6;
      document.write("<br>Start value: ", start);
      document.write("<br>End value: ", end);
      
      //creating new empty typed array
      let new_t_array = new Uint8Array([]);
      
      //using the slice() method
      new_t_array = T_array.slice(start, end);
      document.write("<br>New TypedArray(after copying): ", new_t_array);
   </script>    
</body>
</html>

输出

执行上述程序后,它将显示新的 TypedArray 为:

Original TypedArray: 20,40,60,70,90,100,120,130
Start value: 3
End value: 6
New TypedArray(after copying): 70,90,100

示例 4

如果我们将 start 参数值设置为-2传递给 slice() 方法,它将从 TypedArray [1, 2, 3, 4, 5] 中提取最后两个元素。

<html>
<head>
   <title>JavaScript TypedArray slice() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 4, 5]);
      document.write("Original TypedArray: ", T_array);
      const start = -2;
      document.write("<br>Start value: ", start);
      
      //creating new empty typed array
      let new_t_array = new Uint8Array([]);
      
      //using the slice() method
      new_t_array = T_array.slice(start);
      document.write("<br>New TypedArray(after copying): ", new_t_array);
   </script>    
</body>
</html>

输出

上述程序返回一个新的 TypedArray:[4, 5]。

Original TypedArray: 1,2,3,4,5
Start value: -2
New TypedArray(after copying): 4,5
广告
© . All rights reserved.