我需要将 2 个现有 arrayBuffers 的 2 个部分组合成一个新的。
我正在构建一个解析器,数据来自随机大小的数组缓冲区,数据将溢出到一个的末尾,进入另一个的开头。所以我需要创建一个新的输出缓冲区并复制一个缓冲区末尾的一部分和另一个缓冲区开头的一部分。输出将只是一个 Arraybuffer。
从这个演示开始,我打算用一些偏移量制作 Uint8Arrays 然后使用 set,问题是某些组合 throw Invalid typed array length
。我不会事先知道每个数组的长度或偏移量。
var buffer1 = new ArrayBuffer(8);
var buffer2 = new ArrayBuffer(8);
var buffer3 = new ArrayBuffer(8);
var uint8_1 = new Uint8Array(buffer1);
var uint8_2 = new Uint8Array(buffer2);
var uint8_3 = new Uint8Array(buffer3);
uint8_1.fill(1);
uint8_2.fill(2);
var uint8_1_slice = new Uint8Array(buffer1 , 0 , 3);
var uint8_2_slice = new Uint8Array(buffer2 , 4, 7);
对于此演示,需要将 buffer3 设置为 1,1,1,1,2,2,2,2。
不能使用切片