Float32Array有几种构造方式?
Float32Array
在 JavaScript 中有几种构造方式:
-
使用 Typed Array 构造函数,传入长度: 这将创建一个指定长度的
Float32Array
,并用 0 填充。const length = 10; const floatArray = new Float32Array(length); // 创建一个长度为 10 的 Float32Array console.log(floatArray); // 输出: Float32Array(10) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
-
使用 Typed Array 构造函数,传入一个 Array 或 Typed Array: 这将创建一个新的
Float32Array
,并将提供的数组中的元素复制到其中。const array = [1, 2, 3, 4, 5]; const floatArray = new Float32Array(array); console.log(floatArray); // 输出: Float32Array(5) [1, 2, 3, 4, 5] const otherTypedArray = new Int8Array([10, 20, 30]); const floatArray2 = new Float32Array(otherTypedArray); console.log(floatArray2); // 输出: Float32Array(3) [10, 20, 30]
-
使用 Typed Array 构造函数,传入一个 ArrayBuffer: 这将创建一个
Float32Array
视图,该视图指向提供的ArrayBuffer
。 你可以选择指定一个字节偏移量和长度。 如果没有指定偏移量和长度,则Float32Array
将从ArrayBuffer
的开头开始,并使用整个缓冲区。const buffer = new ArrayBuffer(20); // 创建一个 20 字节的 ArrayBuffer const floatArray = new Float32Array(buffer); // 创建一个 Float32Array 视图,指向整个 buffer console.log(floatArray); // 输出: Float32Array(5) [0, 0, 0, 0, 0] (20 bytes / 4 bytes per element = 5 elements) const floatArray2 = new Float32Array(buffer, 4, 2); // 从偏移量 4 开始,创建长度为 2 的 Float32Array 视图 console.log(floatArray2); // 输出: Float32Array(2) [0, 0]
-
使用 Typed Array 构造函数,传入一个可迭代对象: 这会创建一个新的
Float32Array
,并使用可迭代对象中的值填充它。const iterable = new Set([1, 2, 3]); const floatArray = new Float32Array(iterable); console.log(floatArray); // Float32Array(3) [1, 2, 3]
这些就是创建 Float32Array
的主要方法。 选择哪种方法取决于你的具体需求,例如是从现有数据创建,还是创建一个特定大小的新数组。 理解 ArrayBuffer
和视图的概念对于有效地使用 Float32Array
至关重要,尤其是在处理大量数据或与 Web APIs(如 WebSockets 或 Web Audio API)交互时。