Matrices escritas

Descubra qué son las matrices escritas y cómo utilizarlas

JavaScript Provides 8 Matriz con tipotipos:

  • Int8Arrayuna matriz de enteros con signo de 8 bits
  • Int16Arrayuna matriz de enteros de 16 bits con signo
  • Int32Arrayuna matriz de enteros de 32 bits con signo
  • Uint8Arrayuna matriz de enteros sin signo de 8 bits
  • Uint16Arrayuna matriz de enteros sin signo de 16 bits
  • Uint32Arrayuna matriz de enteros sin signo de 32 bits
  • Float32Arrayuna matriz de números de coma flotante de 32 bits
  • Float64Arrayuna matriz de números de coma flotante de 64 bits

todos ellos sonArrayBufferViewinstancias.

Una matriz con tipo es esencialmente una vista de unArrayBuffer, donde todos los elementos tienen el mismo tamaño y tipo.

DataViewes otra vista en un ArrayBuffer, pero en este caso los elementos de la matriz pueden tener diferentes tamaños y tipos.

A continuación, se muestra un ejemplo de cómo crear una matriz de enteros con signo de 8 bits:

const a = new Int8Array()

Puede preasignar n bytes:

const bytes = 1024
const a = new Int8Array(bytes)

El uso principal es permitir ver un ArrayBuffer, que por sí solo es opaco (no podemos inspeccionar su contenido).

Así es como lo hacemos:

//we got this `buffer` ArrayBuffer
const a = new Int8Array(buffer)

Esas matrices escritas son similares a matrices, por lo que ahora podemos inspeccionar el contenido del búfer a través de las técnicas habituales de acceso a matrices, y tenemos acceso a muchos métodos y propiedades, incluyendomap(),reduce()etcétera.

El caso de uso principal de Typed Arrays es usar conWebGL,Audio webo laAPI de Canvas. Algunas de las funciones de WebGL esperan matrices escritas, ya que son mucho más eficaces que las matrices JavaScript normales.

Una cosa a tener en cuenta es que las matrices escritas no nos permiten controlar laendianidad:usa el orden de bytes de la plataforma. En general, esto funciona bien, porque el caso de uso principal, como dijimos, es usar la matriz localmente, usando una de las API multimedia. Además, la mayoría de las computadoras de consumo usan little endian ya que Intel usa esa convención. Pero, si transfiere los datos de un Typed Array en un sistema que usa big endian, es posible que los datos estén mal codificados y, por lo tanto, no sean válidos.

En caso de que necesite este tipo de control sobre la endianidad, utiliceDataViewen lugar de.


Más tutoriales de navegador: