我需要將2個現有arraybuffers的2個部分合併爲一個新的。Javascript組合ArrayBuffer部件
我正在構建一個解析器,並且數據以隨機大小的數組出現,數據將溢出到另一個的末尾。所以我需要創建一個新的輸出緩衝區並複製一個緩衝區的一部分和另一個緩衝區的一部分。輸出將只是一個Arraybuffer。
從這個演示開始,我打算用一些偏移量來製作Uint8Arrays然後使用set,問題是某些組合拋出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。
無法使用切片
這是在正確的軌道上,它應該使用set,因爲如果不是,你一次只複製1個字節。 – brianxautumn
其實對不起,不能使用slice,它會返回一個新的數組。 – brianxautumn
@brianxautumn _「其實對不起,不能使用分片,它會返回一個新的數組」_不確定你的意思?是否需要不創建一個新的數組? – guest271314