如何将Int32存储到ArrayBuffer中

时间:2019-05-20 12:44:35

标签: javascript node.js

我有一个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)

从技术上讲,这是可行的,但是我正在做的读写工作量太多了。有没有更好的方法来实现readInt32writeInt32

0 个答案:

没有答案