📜  JavaScript | Int8Array from() 方法(1)

📅  最后修改于: 2023-12-03 15:01:39.272000             🧑  作者: Mango

JavaScript | Int8Array from() 方法

简介

Int8Array.from() 方法用于创建一个新的 Int8Array 数组。它从一个类数组对象或可迭代对象中创建,类似于Array.from() 方法。

Int8Array 是 JavaScript 中的一个类型化数组(TypedArray),它允许程序员以固定长度的方式存储和操作8位大小的整数。Int8Array.from() 方法为创建 Int8Array 数组提供了便捷的方式。

语法
Int8Array.from(source[, mapFn[, thisArg]])
  • source:必需,要转换为 Int8Array 的源数据,可以是一个类数组对象或可迭代对象。
  • mapFn:可选,对每个元素进行转换的回调函数。
  • thisArg:可选,执行回调函数 mapFn 时的 this 值。
返回值

返回一个新的 Int8Array 数组。

示例
从类数组对象创建 Int8Array 数组
let arr = {0: 10, 1: 20, 2: 30, length: 3};
let int8Arr = Int8Array.from(arr);

console.log(int8Arr); // 输出: Int8Array [10, 20, 30]
console.log(int8Arr instanceof Int8Array); // 输出: true
从可迭代对象创建 Int8Array 数组
let iterable = 'Hello World';
let int8Arr = Int8Array.from(iterable, char => char.charCodeAt(0));

console.log(int8Arr); // 输出: Int8Array [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
console.log(int8Arr instanceof Int8Array); // 输出: true
使用 mapFn 对元素进行转换
let iterable = [1, 2, 3, 4];
let int8Arr = Int8Array.from(iterable, num => num * 10);

console.log(int8Arr); // 输出: Int8Array [10, 20, 30, 40]
console.log(int8Arr instanceof Int8Array); // 输出: true
注意事项
  • 在创建 Int8Array 时,如果源数据中的元素无法转换为有效的8位整数,则会被截断。
  • 不同于 Array.from() 方法,Int8Array.from() 方法不会创建一个新的 Int8Array 子类实例,而是返回一个标准的 Int8Array 实例。