JavaScript - TypedArray set() 方法
JavaScript TypedArray set() 方法用于通过从指定的源数组读取输入值,将一个或多个值存储到类型化数组中。该方法返回 none(undefined)。
此外,该方法还接受一个名为 'targetOffset' 的可选参数,该参数指定目标数组中写入操作的起始位置。如果未指定,则从目标数组的第 0 个索引处开始写入。
注意 − 如果 targetOffset 参数值为 负数 或超出目标数组长度,则会抛出 "RangeError" 异常。
语法
以下是 JavaScript TypedArray set() 方法的语法 −
set(typedarray, targetOffset)
参数
此方法接受两个名为"typedarray"和"targetOffset"的参数,如下所述 −
typedarray− 要从中复制的源数组值。
targetOffset(可选)− 目标数组中开始写入值的索引(或位置)。
返回值
此方法返回 None(未定义)。
示例
示例 1
在下面的程序中,我们使用 JavaScript TypedArray set() 方法,通过从指定的源数组 [1, 2, 3, 4, 5, 6, 7, 8] 读取输入值,将多个值存储在类型化数组中。
<html>
<head>
<title>JavaScript TypedArray set() Method</title>
</head>
<body>
<script>
const T_array = new Uint16Array([1, 2, 3, 4, 5, 6, 7, 8]);
document.write("Typed array(target array): ", T_array);
//使用 set() 方法
document.write("<br>The set() method returns: ", T_array.set([0, 0, 0]));
</script>
</body>
</html>
输出
上述程序执行后,将返回"undefined"。
Typed array(target array): 1,2,3,4,5,6,7,8 The set() method returns: undefined
示例 2
如果省略 targetOffset 参数,则源数组将从索引 0 开始覆盖目标数组中的值。
以下是 JavaScript TypedArray set() 方法的另一个示例。我们使用此方法从指定的源数组 [1, 2, 3](从默认索引 0 开始)读取输入值,从而将多个值存储在此类型数组 [10, 20, 30, 40, 50] 中。
<html>
<head>
<title>JavaScript TypedArray set() Method</title>
</head>
<body>
<script>
const T_array = new Uint16Array([10, 20, 30, 40, 50]);
document.write("Typed array(target array): ", T_array);
const source_arr = new Uint16Array([1, 2, 3]);
document.write("<br>Source array: ", source_arr);
//使用 set() 方法
T_array.set(source_arr);
document.write("<br>Typed array after set: ", T_array);
</script>
</body>
</html>
输出
上述程序返回一个类型数组,类型为 [1, 2, 3, 40, 50]。
Typed array(target array): 10,20,30,40,50 Source array: 1,2,3 Typed array after set: 1,2,3,40,50
示例 3
如果我们将 targetOffset 参数值设置为 2,则它会从指定的源数组开始将值存储在目标数组中,从指定的 targetOffset 值开始。
在下面的示例中,我们使用 JavaScript TypedArray set() 方法,从指定的源数组 [10,20,30] 的指定索引 2 开始读取输入值,从而将多个值存储在目标类型数组 [0,0,0,0,0,0,0,0] 中。
<html>
<head>
<title>JavaScript TypedArray set() Method</title>
</head>
<body>
<script>
const T_array = new Uint16Array([0, 0, 0, 0, 0, 0, 0, 0]);
document.write("Typed array(target array): ", T_array);
const source_arr = new Uint16Array([10, 20, 30]);
document.write("<br>Source array: ", source_arr);
const targetOffset = 2;
document.write("<br>The targetOffset: ", targetOffset);
//使用 set() 方法
T_array.set(source_arr, targetOffset);
document.write("<br>Typed array after set: ", T_array);
</script>
</body>
</html>
输出
执行上述程序后,将显示以下输出 -
Typed array(target array): 0,0,0,0,0,0,0,0 Source array: 10,20,30 The targetOffset: 2 Typed array after set: 0,0,10,20,30,0,0,0
示例 4
如果 targetOffset 参数值传递为 −2,由于它是一个负值,因此 set() 方法会抛出"RangeError"异常。
<html>
<head>
<title>JavaScript TypedArray set() Method</title>
</head>
<body>
<script>
const T_array = new Uint16Array([1, 3, 5, 7, 9]);
document.write("Typed array(target array): ", T_array);
const source_arr = new Uint16Array([10, 20, 30]);
document.write("<br>Source array: ", source_arr);
const targetOffset = -2;
document.write("<br>The targetOffset: ", targetOffset);
//使用 set() 方法
try {
T_array.set(source_arr, targetOffset);
document.write("<br>Typed array after set: ", T_array);
} catch (error) {
document.write("<br>", error);
}
</script>
</body>
</html>
输出
上述程序执行后,将抛出"RangeError"异常。
Typed array(target array): 1,3,5,7,9 Source array: 10,20,30 The targetOffset: -2 RangeError: offset is out of bounds

