Buffer オブジェクトは、Node.js でデータの入出力によく使用されますが、シナリオによってはバッファーを配列に変換する必要があります。この記事ではNode.jsでバッファを配列に変換する方法を紹介します。
バッファ オブジェクトについて
バッファ オブジェクトは、バイナリ データの処理に特化した Node.js のオブジェクトです。配列に似ていますが、32 ビット整数ではなくバイトを格納します。 。バッファ オブジェクトの基礎となる実装では C を使用して効率を向上させ、データ ストリームの高速な読み取りと書き込みを可能にします。
Node.js では、通常、ネットワーク通信やファイル操作などにバッファ オブジェクトを使用します。バッファ オブジェクトは幅広い利用シーンがあり、Node.js の中核の 1 つと言えます。
配列について
従来のプログラミングでは、配列は最も一般的に使用されるデータ型の 1 つです。さまざまな種類のデータを保存し、追加、削除、変更、確認などのさまざまな方法で操作できます。
JavaScript では、配列も最も一般的に使用されるデータ型の 1 つです。 JS 配列は特に柔軟性が高く、さまざまなタイプのデータを格納でき、配列の操作には多くの関数プログラミング手法を使用できます。
バッファから配列への
Node.js では、操作のためにバッファを配列に変換する必要があることがよくあります。バッファを配列に変換する方法は次のとおりです。
function buffer2Array1(buf) { const arr = [] for (let i = 0; i < buf.length; i++) { arr.push(buf[i]) } return arr }
function buffer2Array2(buf) { return [...buf] }
function buffer2Array3(buf) { return Array.prototype.map.call(buf, (x) => x) }
function buffer2Array4(buf) { return Array.from(new Uint8Array(buf)) }
上記の方法のうち、最初の方法が最も単純ですが、パフォーマンスの点で若干不十分です。 2 番目の方法では、簡潔なスプレッド演算子を使用するため、最初の方法と比較してパフォーマンスが向上します。 3 番目の方法では ES5 Array.prototype.map 関数を使用します。これは比較的読みやすいかもしれませんが、パフォーマンスの低下も伴います。最後の方法は、変換に ArrayBuffer 関連のメソッドを使用することで、パフォーマンスの点で比較的優れたパフォーマンスを発揮します。
デモの例
簡単な例では、上記のメソッドを直接呼び出してバッファを配列に変換できます。以下は実際の応用例です:
const fs = require('fs') const fileName = 'test.txt' fs.readFile(fileName, (err, data) => { if (err) { console.error(err) return } const arr1 = buffer2Array1(data) const arr2 = buffer2Array2(data) const arr3 = buffer2Array3(data) const arr4 = buffer2Array4(data) console.log(arr1) console.log(arr2) console.log(arr3) console.log(arr4) })
このコードでは、Node.js の fs モジュールを使用してファイルを読み取り、それを配列に変換し、4 つのメソッドの結果を出力します。
概要
バッファ オブジェクトは、バイナリ データの処理に特化した Node.js のオブジェクトであり、配列は一般的に使用されるデータ型の 1 つです。 Node.js では、操作のためにバッファーを配列に変換する必要があることがよくあります。この記事では、バッファを配列に変換する 4 つの方法を紹介し、実際のアプリケーション シナリオを例とともに示します。
以上がNodejsでバッファを配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。