tutorial paginas español ejemplos definicion curso caracteristicas javascript typed-arrays

paginas - ¿Cómo puedo combinar TypedArrays en JavaScript?



javascript pdf (2)

Utilice el método de set . ¡Pero tenga en cuenta que ahora necesita el doble de memoria!

var a = new Int8Array( [ 1, 2, 3 ] ); var b = new Int8Array( [ 4, 5, 6 ] ); var c = new Int8Array(a.length + b.length); c.set(a); c.set(b, a.length); console.log(a); console.log(b); console.log(c);

Me gustaría combinar varios arraybuffers para crear un Blob. sin embargo, como usted sabe, TypedArray no tiene métodos "push" o útiles ...

P.ej:

var a = new Int8Array( [ 1, 2, 3 ] ); var b = new Int8Array( [ 4, 5, 6 ] );

Como resultado, me gustaría obtener [ 1, 2, 3, 4, 5, 6 ] .


Yo siempre uso esta función:

function mergeTypedArrays(a, b) { // Checks for truthy values on both arrays if(!a && !b) throw ''Please specify valid arguments for parameters a and b.''; // Checks for truthy values or empty arrays on each argument // to avoid the unnecessary construction of a new array and // the type comparison if(!b || b.length === 0) return a; if(!a || a.length === 0) return b; // Make sure that both typed arrays are of the same type if(Object.prototype.toString.call(a) !== Object.prototype.toString.call(b)) throw ''The types of the two arguments passed for parameters a and b do not match.''; var c = new a.constructor(a.length + b.length); c.set(a); c.set(b, a.length); return c; }

La función original sin comprobación de nulos o tipos.

function mergeTypedArraysUnsafe(a, b) { var c = new a.constructor(a.length + b.length); c.set(a); c.set(b, a.length); return c; }