TypedArray.prototype.set()

 set() 方法用于从指定数组中读取值,并将其存储在类型化数组中。

语法

typedarray.set(array[, offset])
typedarray.set(typedarray[, offset])

参数

array
拷贝数据的源数组,源数组的所有值都会被复制到目标数组中,除非源数组的长度加上偏移量超过目标数组的长度,而在这种情况下会抛出异常。
参数array是源数组,指定从哪里拷贝值。源数组中的所有值都会被拷贝到目标数组中去。如果源数组的长度加上偏移值offset的结果超过目标数组的长度,则会抛出异常错误。
typedarray
如果源数组是一个类型化数组(typed array),则源数组和目标数组会共享同一个底层的ArrayBuffer;浏览器将会智能地将 buffer 的指定区段拷贝到目标区段中去。
offset 可选
偏移量参数 offset 指定从什么地方开始使用源数组 array 的值进行写入操作。如果忽略该参数,则默认为0(也就是说,从目标数组的下标为0处开始,使用源数组 array 的值覆盖重写)。

异常

RangeError
如果指定的偏移量超出了类型化数组的范围,则该异常会被抛出。

示例

使用 set()

var buffer = new ArrayBuffer(8);
var uint8 = new Uint8Array(buffer);

uint8.set([1,2,3], 3);

console.log(uint8); // Uint8Array [ 0, 0, 0, 1, 2, 3, 0, 0 ]

规范

文档 状态 说明
Typed Array Specification Obsolete ECMAScript 6中已废弃。
ECMAScript 2015 (6th Edition, ECMA-262)
TypedArray.prototype.set
Standard 在ECMA标准中初始定义。
ECMAScript Latest Draft (ECMA-262)
TypedArray.prototype.set
Draft

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
浏览器 Chrome Firefox (Gecko) Internet Explorer Opera Safari
最低版本 7.0 4.0 (2) 10 11.6 5.1
浏览器 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
最低版本 4.0 (Yes) 4.0 (2) 10 11.6 4.2

另见