Para crear un objeto array, usaremos el constructor new Array( ). Por ejemplo:
let miarray= new Array();
Un objeto array dispone de una propiedad que nos indica su longitud. Esta propiedad es length (longitud, que será 0 para un array vacío). Si queremos precisar el tamaño del array durante la inicialización (por ejemplo para que se cargue con valores <null), podríamos hacerlo pasándole un parámetro al constructor. Por ejemplo, aquí puedes ver como crear un nuevo array que almacene la información de 40 personas:
let personas = new Array(40);
A diferencia de otros lenguajes de programación, en los que hacer el dimensionamiento previo del array tiene ventajas, en JavaScript no nos dará ningún tipo de ventaja especial, ya que podremos asignar un valor a cualquier posición del array en cualquier momento, esté o no definida previamente. La propiedad length se ajustará automáticamente al nuevo tamaño del array. Por ejemplo podríamos hacer una asignación tal como personas[53] y eso que nuestro array es de 40 posiciones. En este caso no ocurrirá ningún problema, ya que la propiedad length del array se ajustará automáticamente para poder almacenar la posición 53, con lo que la nueva longitud del array será 54, ya que la primera posición del array es la [0] y la última es la [53], tendremos por lo tanto 54 elementos en el array.
personas[53] = "Irene Sáinz Veiga";
longitud = personas.length; // asignará a la variable longitud el valor 54
Introducir datos en un array
Introducir datos en un array, es tan simple como crear una serie de sentencias de asignación, una por cada elemento del array. Ejemplo de un array que contiene el nombre de los planetas del sistema solar:
let sistemaSolar = new Array( );
sistemaSolar[0] = "Mercurio"; sistemaSolar[1] = "Venus"; sistemaSolar[2] = "Tierra";
sistemaSolar[3] = "Marte"; sistemaSolar[4] = "Jupiter"; sistemaSolar[5] = "Saturno";
sistemaSolar[6] = "Urano"; sistemaSolar[7] = "Neptuno";
Esta forma es un poco tediosa a la hora de escribir el código, pero una vez que las posiciones del array están cubiertas con los datos, acceder a esa información nos resultará muy fácil:
let unPlaneta = sistemaSolar[2]; // almacenará en unPlaneta la cadena "Tierra".
Otra forma de crear el array puede ser mediante el constructor. En lugar de escribir cada sentencia de asignación para cada elemento, lo podemos hacer creando lo que se denomina un "array denso", aportando al constructor array( ), los datos a cubrir separados por comas:
let sistemaSolar = new array ("Mercurio","Venus","Tierra","Marte","Jupiter","Saturno","Urano","Neptuno");
El término de "array denso" quiere decir que los datos están empaquetados dentro del array, sin espacios y comenzando en la posición 0. Otra forma permitida a partir de la versión de JavaScript 1.2+, sería aquella en la que no se emplea el constructor y se definen los arrays de forma literal:
let sistemaSolar = ["Mercurio","Venus","Tierra","Marte","Jupiter","Saturno","Urano","Neptuno"];
Los corchetes sustituyen a la llamada al constructor new Array(). Hay que tener cuidado con esta forma de creación que quizás no funcione en navegadores antiguos.
Y para terminar vamos a ver otra forma de creación de un array mixto (o también denominado objeto literal), en el que las posiciones son referenciadas con índices de tipo texto o números, mezclándolos de forma aleatoria. Si las posiciones índice están definidas por un texto, para acceder a ellas lo haremos utilizando su nombre y no su número (en este caso si usamos el número nos daría una posición undefined). El formato de creación sería: nombrearray = { "indice1" : valor , indice2 : "valor" , …}
(fíjate que en este caso para definir el array de tipo mixto tendremos que hacerlo comenzando y terminando con llaves { } ). Por ejemplo:
let datos = { "numero": 42, "mes" : "Junio", "hola" : "mundo", 69 : "96" };
document.write("<br/>"+datos["numero"]+ " -- " + datos["mes"]+ " -- " + datos["hola"]+ " -- " + datos[69]+ "<br/>");
También podemos hacer combinaciones aún más extrañas.
let datos=[]; // Se crea una matriz vacía de otra forma distinta.
datos[-124]="valor"; // Es una posición asociativa.
datos[1.000]="Contenido"; //No es asociativo ya que redondea a la posición 1. No es asociativo o disperso el índice.
datos["tres"]=""; // Es asociativo
console.log(datos);
Por supuesto no es recomendable mezclarlas, pero se pueden utilizar.