# 类型化数组
对原始二进制缓冲区的类似数组的视图。
类型化数组 API 的工作方式与 JavaScript 的非常相似 (MDN (在新窗口中打开))。下面的 TypedArray
表示元素类型为 T
的变体之一,而不是实际的类。请注意,类型化数组实际上不是泛型的,但 Uint8Array
和 Float64Array
等具体实现具有相同的接口,只是在实现的元素类型 (表示为 T
) 上有所不同。
# 变体
变体 | 元素类型 | 描述 |
---|---|---|
Int8Array | i8 | 对 8 位有符号整数的视图。 |
Int16Array | i16 | 对 16 位有符号整数的视图。 |
Int32Array | i32 | 对 32 位有符号整数的视图。 |
Int64Array | i64 | 对 64 位有符号整数的视图。 |
Uint8Array | u8 | 对 8 位无符号整数的视图。 |
Uint8ClampedArray | u8 | 对 8 位无符号整数的视图, 设置的值在 0 和 255 (含)之间。 |
Uint16Array | u16 | 对 16 位无符号整数的视图。 |
Uint32Array | u32 | 对 32 位无符号整数的视图。 |
Uint64Array | u64 | 对 64 位无符号整数的视图。 |
Float32Array | f32 | 对 32 位浮点数的视图。 |
Float64Array | f64 | 对 64 位浮点数的视图。 |
# 构造函数
- 使用新的后备缓冲区构造一个新的类型化数组视图,并将所有值初始化为零。有关包装原始缓冲区的说明,请参见下面的
new TypedArray(length: i32)
wrap
。
# 静态成员
const BYTES_PER_ELEMENT: usize
每个元素的字节数。
function wrap(buffer: ArrayBuffer, byteOffset?: i32, length?: i32): TypedArray
将原始缓冲区包装为类型化数组的值类型的值序列。这等效于 JS 中的相应备用构造函数签名,但存在的原因是还没有函数重载。
# 实例成员
# 字段
readonly buffer: ArrayBuffer
此视图的后备数组缓冲区。
readonly byteOffset: i32
从后备缓冲区开始处的偏移量(以字节为单位)。
readonly byteLength: i32
从后备缓冲区开始处的长度(以字节为单位)。
readonly length: i32
元素的长度。
# 方法
function every(fn: (value: T, index: i32, self: TypedArray) => bool): bool
使用数组的每个值调用指定函数,直到它找到第一个函数返回
false
的值。如果所有函数都返回true
或数组为空,则返回true
,否则返回false
。function fill(value: T, start?: i32, end?: i32): this
将数组中从
start
(含)到end
(不含)的值替换为指定的值,并返回数组。function findIndex(fn: (value: T, index: i32, self: TypedArray) => bool): i32
使用数组的每个值调用指定函数,直到它找到第一个函数返回
true
的值,并返回其索引。如果永远不会出现这种情况,则返回-1
。function findLastIndex(fn: (value: T, index: i32, self: TypedArray) => bool): i32
使用数组的每个值(从结尾开始)调用指定函数,直到它找到第一个函数返回
true
的值,并返回其索引。如果永远不会出现这种情况,则返回-1
。function forEach(fn: (value: T, index: i32, self: TypedArray) => void): void
使用数组的每个值调用指定函数。
function includes(value: T, fromIndex?: i32): bool
测试数组是否包含指定的值,可以选择提供起始索引。
function indexOf(value: T, fromIndex?: i32): i32
获取数组中可以找到指定值的第一个索引。如果未找到,则返回
-1
。function lastIndexOf(value: T, fromIndex?: i32): i32
获取数组中可以找到指定值的最后一个索引。如果未找到,则返回
-1
。function map(fn: (value: T, index: i32, self: TypedArray) => T): TypedArray
使用数组的每个值调用指定函数,返回一个包含函数返回值的新数组。
function reduce<U>( fn: (accumValue: U, currentValue T, index: i32, self: TypedArray) => U, initialValue: U ): U
使用数组的每个值调用指定 reducer 函数,生成单个返回值。相应的前一个 reducer 函数的返回值将保存在
accumValue
中,从initialValue
开始,在过程中成为最终返回值。function reduceRight<U>( fn: (accumValue: U, currentValue: T, index: i32, self: TypedArray) => U, initialValue: U ): U
使用数组的每个值(从右到左)调用指定 reducer 函数,生成单个返回值。
function reverse(): this
就地反转数组的值,在返回数组之前修改数组。
function set(source: ArrayLike<number>, offset?: i32): void
设置类型化数组值(从
offset
开始,或 0),从指定的source
数组读取输入值。function some(fn: (value: T, index: i32, self: TypedArray) => bool): bool
使用数组的每个值调用指定函数,直到它找到第一个函数返回
true
的值,并返回true
。否则或如果数组为空,则返回false
。function sort(fn: (a: T, b: T) => i32): this
就地对数组的值进行排序,使用指定的比较器函数,在返回数组之前修改数组。比较器返回负值表示
a < b
,正值表示a > b
,而0
表示两者相等。与在 JavaScript 中不同的是,在 JavaScript 中会执行隐式转换为字符串,比较器默认为比较类型为T
的两个值。function subarray(start?: i32, end?: i32): TypedArray
返回对数组的后备缓冲区的新的视图,从相对于此数组的
begin
(含)到end
(不含)。如果省略,end
默认为数组的末尾。不复制。