vectores float convert bytes array javascript arrays html5 bytearray byte

float - javascript typed array push



Cómo almacenar una matriz de bytes en Javascript (3)

Mediante el uso de matrices con tipo , puede almacenar matrices de estos tipos :

  • Int8
  • Uint8
  • Int16
  • Uint16
  • Int32
  • Uint32
  • Flotador32
  • Flotador64

Por ejemplo:

​var array = new Uint8Array(100); array[42] = 10; alert(array[42]);​

Véalo en acción here .

Voy a almacenar una gran variedad de valores de bytes (lo más probable es que más de un millón) en Javascript. Si utilizo una matriz normal con números normales, eso tomará 8 MB, porque los números se almacenan cuando IEEE se duplica, pero si puedo almacenarlo como bytes, solo será 1 MB.

Me gustaría evitar perder tanto espacio por razones obvias. ¿Hay una manera de almacenar bytes como bytes en lugar de dobles? La compatibilidad con el navegador no es un problema para mí, siempre y cuando funcione en Chrome. Esto está en HTML5, si eso hace una diferencia.


Puede almacenar los datos en una matriz de cadenas de un tamaño fijo grande. Debería ser eficiente acceder a cualquier carácter particular en ese conjunto de cadenas y tratar ese carácter como un byte.

Sería interesante ver las operaciones que desea apoyar, tal vez expresadas como una interfaz, para que la pregunta sea más concreta.


var array = new Uint8Array(100); array[10] = 256; array[10] === 0 // true

Lo verifiqué en Firefox y Chrome, es realmente una matriz de bytes:

var array = new Uint8Array(1024*1024*50); // allocates 50MBytes