array javascript arrays

Convertir Uint8Array a Array en Javascript



arraybuffer javascript (2)

Hay un método de Uint8Array que usa el prototipo (pero solo es compatible con Firefox y Chrome):

TypedArray.prototype.entries () -> devuelve una matriz.

Compruébelo: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries

Tengo una instancia de Uint8Array que contiene datos binarios de algún archivo.
Deseo enviar datos al servidor, donde se deserializará como byte [].
Pero si envío Uint8Array, tengo un error de deserialización.

Entonces, quiero convertirlo a Array, ya que Array está bien deserializado.
Lo hago de la siguiente manera:

function uint8ArrayToArray(uint8Array) { var array = []; for (var i = 0; i < uint8Array.byteLength; i++) { array[i] = uint8Array[i]; } return array; }

Esta función funciona bien, pero no es muy eficiente para archivos grandes.

Pregunta: ¿Hay una forma más eficiente de convertir Uint8Array -> Array?


Puede usar var array = Array.from(uint8Array) en entornos que ya Array.from compatibles con Array.from (ES6), cuando no es compatible puede usar var array = [].slice.call(uint8Array)