Heim  >  Artikel  >  Web-Frontend  >  So konvertieren Sie einen Puffer in ein Array in NodeJS

So konvertieren Sie einen Puffer in ein Array in NodeJS

PHPz
PHPzOriginal
2023-04-17 16:45:001843Durchsuche

Pufferobjekte werden häufig für die Dateneingabe und -ausgabe in Node.js verwendet, aber in einigen Szenarien müssen Puffer in Arrays konvertiert werden. In diesem Artikel erfahren Sie, wie Sie in Node.js einen Puffer in ein Array konvertieren.

Über das Pufferobjekt

Das Pufferobjekt ist ein Objekt in Node.js, das auf die Verarbeitung von Binärdaten spezialisiert ist. Es ähnelt einem Array, speichert jedoch Bytes anstelle von 32-Bit-Ganzzahlen. Die zugrunde liegende Implementierung des Pufferobjekts verwendet C++, um die Effizienz zu verbessern und ein schnelles Lesen und Schreiben von Datenströmen zu ermöglichen.

In Node.js verwenden wir normalerweise Pufferobjekte für Netzwerkkommunikation, Dateioperationen usw. Das Pufferobjekt hat ein breites Spektrum an Verwendungsszenarien und kann als einer der Kerne von Node.js betrachtet werden.

Über Arrays

In der konventionellen Programmierung sind Arrays einer der am häufigsten verwendeten Datentypen. Verschiedene Arten von Daten können gespeichert und auf viele verschiedene Arten bearbeitet werden, z. B. durch Hinzufügen, Löschen, Ändern und Überprüfen.

In JavaScript gehören Arrays auch zu den am häufigsten verwendeten Datentypen. JS-Arrays sind besonders flexibel. Sie können verschiedene Arten von Daten speichern und viele funktionale Programmiermethoden können zum Bearbeiten von Arrays verwendet werden.

Puffer zu Array

In Node.js müssen wir für den Betrieb häufig Puffer in Array konvertieren. Hier sind einige Methoden zum Konvertieren eines Puffers in ein Array:

  1. Verwenden Sie eine for-Schleife, um den Puffer zu durchlaufen, jedes Byte in eine Dezimalzahl umzuwandeln und es in ein Array einzufügen.
function buffer2Array1(buf) {
  const arr = []
  for (let i = 0; i < buf.length; i++) {
    arr.push(buf[i])
  }
  return arr
}
  1. Verwenden Sie den Spread-Operator, um Puffer in Array umzuwandeln.
function buffer2Array2(buf) {
  return [...buf]
}
  1. Verwenden Sie die Map-Funktion, um den Puffer in ein Array umzuwandeln.
function buffer2Array3(buf) {
  return Array.prototype.map.call(buf, (x) => x)
}
  1. Verwenden Sie die from-Funktion, um den Puffer in ein Array vom Typ Uint8Array zu konvertieren.
function buffer2Array4(buf) {
  return Array.from(new Uint8Array(buf))
}

Unter den oben genannten Methoden ist die erste Methode die einfachste, aber hinsichtlich der Leistung etwas unzureichend. Die zweite Methode verwendet den prägnanten Spread-Operator, der die Leistung im Vergleich zur ersten Methode verbessert. Die dritte Methode verwendet die ES5-Funktion Array.prototype.map, die möglicherweise besser lesbar ist, aber auch einige Leistungseinbußen mit sich bringt. Die letzte Methode besteht darin, ArrayBuffer-bezogene Methoden für die Konvertierung zu verwenden, was hinsichtlich der Leistung eine relativ bessere Leistung erbringt.

Beispieldemonstration

In einem einfachen Beispiel können Sie die obige Methode direkt aufrufen, um einen Puffer in ein Array umzuwandeln. Das Folgende ist ein Beispiel für eine praktische Anwendung:

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)
})

In diesem Code verwenden wir das fs-Modul von Node.js, um eine Datei zu lesen, sie dann in ein Array zu konvertieren und die Ergebnisse der vier Methoden auszugeben.

Summary

Pufferobjekt ist ein Objekt in Node.js, das auf die Verarbeitung von Binärdaten spezialisiert ist, und Array ist einer der am häufigsten verwendeten Datentypen. In Node.js müssen wir Puffer für Operationen häufig in Arrays konvertieren. In diesem Artikel werden vier Methoden zum Konvertieren von Puffer in Array vorgestellt und ein tatsächliches Anwendungsszenario anhand eines Beispiels demonstriert.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen Puffer in ein Array in NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn