JavaScript - Declarar un Array en javascript indicando el tamaño del mismo, sin asignarle valores.

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 14 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

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:
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Declarar un Array en javascript indicando el tamaño del mismo, sin asignarle valores.

Publicado por Alejandro (532 intervenciones) el 19/11/2019 16:08:52
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Según lo que se, el primer caso obtienes un array de 3 elementos
1
[5,7,10]

En el segundo, inicializas un array de 5 elementos, después cambias el valor del primero e incrementas la variable A1Length = 1 obteniendo el siguiente array
1
[ 10, 0, 0, 0, 0 ]

La única forma que conozco para rellenar un array es for
1
2
3
4
miArray = new Array(1000);
for(i=0, t=miArray.length; i<t; i++){
	miArray[i]={a:'', b:''};
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Declarar un Array en javascript indicando el tamaño del mismo, sin asignarle valores.

Publicado por joel (895 intervenciones) el 19/11/2019 16:45:19
Hola Jose, no me queda muy claro que quieres llegar a tener... pero como te ha mostrado Alejandro, es una muy buena manera... o como tu lo has hecho:
1
var myArray = Array.from(Array(1000), () => Array(2));
y luego le puedes asignar los valores tal y como te muestra Alejandro, o con Map() o directamente a cada elemento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar