HTML5引入的新数组TypedArray介绍

2020-04-22 07:48:24易采站长站整理


复制代码
TypedArray(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length)
创建一个新的TypedArray,使其作为buffer的一个引用,byteOffset为其起始的偏移量,length为其长度。

所以通常我们用下面的方式创建TypedArray:

复制代码
var array = new Uint8Array(10);

或者:

复制代码
var array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
 
数据操作

TypedArray提供了setter、getter、set和subarray四个方法进行数据操作。

方法getter type get(unsigned long index)

返回指定索引的元素。

setter void set(unsigned long index, type value)

设置指定索引的元素为指定值。

void set(TypedArray array, optional unsigned long offset)void set(type[] array, optional unsigned long offset)

根据array设置值,offset为偏移位置。

TypedArray subarray(long begin, optional long end)

返回一个新的TypedArray,起始位为begin,结束位为end。

例如读取元素可以用

var array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);alert(array[4]); //5

设置元素可以用

var array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);alert(array[4]); //5array[4] = 12;alert(array[4]); //12

获取一个副本可以用

var array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);var array2 = array.subarray(0); 数组类型

类型大小描述Web IDL类型C 类型
Int8Array
18位有符号整数
byte
signed char
Uint8Array
18位无符号整数
octet
unsigned char
Uint8ClampedArray
18位无符号整数 (clamped)
octet
unsigned char
Int16Array
216位有符号整数
short
short
Uint16Array
216位无符号整数
unsigned short