Ich habe Uint8Array-Instanz, die Binärdaten einer Datei enthält.
Ich möchte Daten an den Server senden, wo es als Byte [] deserialisiert wird.
Aber wenn ich Uint8Array senden, habe ich Deserialisierungsfehler.Konvertieren Uint8Array in Array in Javascript
Also, ich möchte es in Array konvertieren, wie Array ist deserialized gut.
Ich mache es wie folgt:
function uint8ArrayToArray(uint8Array) {
var array = [];
for (var i = 0; i < uint8Array.byteLength; i++) {
array[i] = uint8Array[i];
}
return array;
}
Diese Funktion funktioniert gut, aber es ist nicht sehr effizient für große Dateien.
Frage: Gibt es effizientere Möglichkeit, Uint8Array -> Array zu konvertieren?
Ja, [] .slice funktioniert gut, und es ist kompakter. Aber es scheint nicht effizienter zu sein. Dauert ~ 5 Sekunden für 10mb Datei. ( –
.entries() (und/oder .values ()) liefert das ArrayIterator-Objekt, nicht das Array. –
Nitpicking hier, aber Sie sind nur ein kleines bisschen besser dran Array.prototype.slice.call anstelle von [] .slice aufrufen es speichert eine unnötige Array-Konstruktion. – jordancpaul