JavaScript - TypedArray slice() 方法
JavaScript TypedArray 的 slice() 方法将从原始类型数组中提取的元素的副本返回到一个新的类型数组对象中,该数组从起始索引到末尾(但不包括结束索引)进行选择。start 和 end 索引表示元素在类型数组中的位置。
此方法不会修改或更改原始类型数组,而是返回一个包含提取元素的新类型数组。如果我们为 start 参数传递一个负值,它将从类型数组的末尾位置开始提取元素。例如,如果 start = −1,它将代表 最后一个 元素。
语法
以下是 JavaScript TypedArray slice() 方法的语法 -
slice(start, end)
参数
此方法接受两个可选参数,分别为"start"和"end",如下所述 -
start(可选) - 元素从零开始提取的索引。
end(可选) - 提取操作将从零开始的索引处停止(slice() 方法最多提取到该索引,但不包括该索引)
返回值
此方法返回一个新的类型化数组,其中包含从原始类型化数组中提取的元素。
示例
示例 1
如果我们同时省略"start"和"end"参数,则 slice() 方法将从第零个索引开始提取元素,直到原始类型化数组的最后一个索引。
在下面的程序中,我们使用 JavaScript slice() 方法将原始类型化数组 [1, 2, 3, 4, 5, 6, 7, 8] 的一部分提取到一个新的类型化数组对象中。由于我们没有为此方法指定 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);
//使用 slice() 方法
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 参数传递给此方法,它将从指定的起始位置提取元素,并持续提取,直到原始类型数组中的最后一个元素。
以下是 JavaScript TypedArray slice() 方法的另一个示例。在本例中,我们尝试从原始类型数组 [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);
//创建新的空类型数组
let new_t_array = new Uint8Array([]);
//使用 slice() 方法
new_t_array = T_array.slice(start);
document.write("<br>New TypedArray(after copying): ", new_t_array);
</script>
</body>
</html>
输出
执行上述程序后,将显示新的类型数组为 [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"位置。
在此示例中,我们使用 TypedArray slice() 方法从指定的起始位置 3 到指定的结束位置 6(不包括)提取原始类型数组 [20, 40, 60, 70, 90, 100, 120, 130] 的一部分副本。
<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);
//创建新的空类型数组
let new_t_array = new Uint8Array([]);
//使用 slice() 方法
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
如果我们将起始参数值 -2 传递给 slice() 方法,它将从类型数组 [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);
//创建新的空类型数组
let new_t_array = new Uint8Array([]);
//使用 slice() 方法
new_t_array = T_array.slice(start);
document.write("<br>New TypedArray(after copying): ", new_t_array);
</script>
</body>
</html>
输出
上述程序返回一个新的类型数组:[4, 5]。
Original TypedArray: 1,2,3,4,5 Start value: -2 New TypedArray(after copying): 4,5

