Declarar un Array en javascript indicando el tamaño del mismo, sin asignarle valores.
Publicado por José (4 intervenciones) el 19/11/2019 03:02:10
En una página web que utiliza javascript necesito aumentar al máximo la velocidad con que se rellena
un array myArray.
La forma en que voy a hacer esto se resume con el siguiente ejemplo, que rellena un Array de enteros
llamado Array1:
1) La forma habitual de introducir elementos en Array1 es:
2) Pero si conozco a priori el tamaño que necesitaré para el Array, es mucho más rápido hacerlo así:
Sin embargo, el Array que estoy usando en mi página web (myArray) no contine enteros, sino objetos
cada uno de los cuales es un Array de dos elementos.
No es un Array de dos dimensiones, sino un array que contiene objetos de tipo Array.
Lo usaré como un mapa donde "A" es la clave y "B" el valor buscado.
Actualmente, lo relleno así y funciona correctamente:
Para aumentar la velocidad con que se rellena myArray, siguiendo el ejmplo comentado para Array1,
necesito declararlo con el tamaño que va a tener (1000 objetos de tipo Array de dos dimensiones).
He probado a declararlo así:
Y entonces insertar nuevos elementos en el mismo:
El problema es que este código no funciona y creo que es porque la declaración de myArray no es correcta.
un array myArray.
La forma en que voy a hacer esto se resume con el siguiente ejemplo, que rellena un Array de enteros
llamado Array1:
1) La forma habitual de introducir elementos en Array1 es:
1
2
var Array1 = [5,7];
Array1.push (10);
2) Pero si conozco a priori el tamaño que necesitaré para el Array, es mucho más rápido hacerlo así:
1
2
3
4
var Array1 = [ 0, 0, 0, 0, 0 ] ; // Allocated array of length 5.
var A1Length = 0 ;
// to do a 'push', do
Array1[ A1Length++ ] = 10;
Sin embargo, el Array que estoy usando en mi página web (myArray) no contine enteros, sino objetos
cada uno de los cuales es un Array de dos elementos.
No es un Array de dos dimensiones, sino un array que contiene objetos de tipo Array.
Lo usaré como un mapa donde "A" es la clave y "B" el valor buscado.
Actualmente, lo relleno así y funciona correctamente:
1
2
3
var myArray = [];
var newElement = { "A":10, "B":'Name 1' }
myArray.push(newElement);
Para aumentar la velocidad con que se rellena myArray, siguiendo el ejmplo comentado para Array1,
necesito declararlo con el tamaño que va a tener (1000 objetos de tipo Array de dos dimensiones).
He probado a declararlo así:
1
2
var myArray = Array.from(Array(1000), () => new Array(2));
var myArrayUsed = 0;
Y entonces insertar nuevos elementos en el mismo:
1
2
var newElement = { "A":10, "B":'Name 1' }
myArray[myArrayUsed++] = newElement;
El problema es que este código no funciona y creo que es porque la declaración de myArray no es correcta.
Valora esta pregunta


0