如何从 ArrayBuffer 获取数组?

How to get an array from ArrayBuffer?

我有一个 ArrayBuffer,它看起来像:

此缓冲区位于名为 myBuffer 的变量下,我感兴趣的是从该对象中获取 Uint8Array

我尝试循环为:

myBuffer.forEach(function(element) {
    console.log(element);
});

并直接访问数组:

console.log(myBuffer['[[Uint8Array]]']);
console.log(myBuffer['Uint8Array']);

但似乎 none 这是正确的方法

您看到的那些伪属性是开发者控制台为了您的利益而放在那里的东西。它们根本不存在,作为 属性 或符号 (AFAIK),即使存在也是非标准的。

您可以像这样以标准方式轻松获得缓冲区的 Uint8Array 视图:

new Uint8Array(myBuffer)

您首先需要将数组缓冲区转换为类型化数组,然后您可以从那里使用扩展运算符创建数组

const typedArray = new Uint8Array(myBuffer);
const array = [...typedArray];