如何从ArrayBuffer获取数组?

时间:2018-09-18 17:36:24

标签: javascript arrays arraybuffer typed-arrays

我有一个ArrayBuffer,看起来像: enter image description here

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

我试图循环为:

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

,并以以下方式直接访问数组:

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

但是似乎这都不是正确的方法

2 个答案:

答案 0 :(得分:2)

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

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

new Uint8Array(myBuffer)

答案 1 :(得分:1)

您首先需要将数组缓冲区转换为类型化的数组,然后可以从此处使用散布运算符创建一个数组

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