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
廣告