web-dev-qa-db-ja.com

ArrayBufferから配列を取得する方法は?

私は次のようなArrayBufferを持っています: enter image description here

このバッファはmyBufferという変数の下に置かれます。私が興味を持っているのは、このオブジェクトからUint8Arrayを取得することです。

私は次のようにループしようとしました:

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

そして、配列に直接アクセスするには:

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

しかし、これは正しいアプローチではないようです

5
delux

あなたが見ているこれらの疑似プロパティは、開発者コンソールがあなたの利益のためにそこに置いているものです。それらは実際にはプロパティやシンボル(AFAIK)としてはまったく存在せず、たとえそれらが非標準であってもそうです。

簡単にUint8Arrayあなたのバッファのビューはこのような標準的な方法ですが:

new Uint8Array(myBuffer)
7

最初に配列バッファーを型付き配列に変換する必要があります。次に、そこからスプレッド演算子を使用して配列を作成できます。

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