我有一个ArrayBuffer,其长度可能会有所不同,具体取决于其内容,因此我需要从Array中的各种索引中连续读取和写入不同的数据类型。有没有一种方法,而不必每次都构造一个新的类型化数组?
我已经尝试通过为每个值构造新的类型化数组来读取和写入ArrayBuffer,但是使用这种方法对代码进行性能分析会发现很多开销。
const myArray = new ArrayBuffer(0x800) // populated from elsewhere
const readInt32 = (array, index) => {
const typedArray = new Uint32Array(array, index, 1)
return typedArray[0]
}
const writeInt32 = (array, index, value) => {
const typedArray = new Uint32Array(array, index, 1)
typedArray[0] = value
}
const sourceAddress = readInt32(myArray, 0)
const targetAddress = readInt32(myArray, 4)
const value = readInt32(myArray, sourceAddress)
writeInt32(myArray, targetAddress, value + 1)
从技术上讲,这是可行的,但是我正在做的读写工作量太多了。有没有更好的方法来实现readInt32
和writeInt32
?