Un'array è una collezione ordinata di dati. Ciascuna voce o elemento di un array ha un indice progressivo che parte da 0. L'indice serve per accedere alle varie voci dell'array. Vediamo l'implementazione JavaScript degli array.
Creare un array
In JavaScript il costrutto new Array()
è caduto in disuso da molto tempo tra gli sviluppatori. Oggi si preferisce la notazione con parentesi quadre, ossia:
var arr = ['a', 'b', 'c'];
L'array arr
contiene tre elementi che sono tre stringhe. Un array può contenere tutti i tipi di dati riconosciuti da JavaScript.
Accedere agli elementi di un array
Per accedere agli elementi contenuti in un array si utilizza l'indice di ciascun elemento che, come abbiamo detto, parte da 0. Quindi il primo elemento avrà indice 0, il secondo 1 e così via.
Ecco un esempio:
alert(arr[1]); // 'b'
L'indice viene inserito all'interno di parentesi quadre unite al riferimento all'array.
La proprietà length
Ciascun array ha una proprietà length
che restituisce il numero complessivo di elementi contenuti nell'array. Attenzione però: il computo parte da 1 e non da 0 come per gli indici degli array:
alert(arr.length); // 3
Eseguire cicli sugli array
Sugli array è possibile eseguire due tipi di cicli JavaScript:
for
do...while
Possiamo ad esempio partire dal primo elemento fino all'ultimo:
var arr = [1, 2, 3, 4, 5, 6], // array di numeri
len = arr.length, // numero di voci nell'array
str = '', // stringa da creare
i, // indice del primo loop
j, // indice del secondo loop
k, // indice del terzo loop
l; // indice del quarto loop
// Primo loop: dal primo all'ultimo elemento con for()
for( i = 0; i < len; i++) {
str += arr[i] + ' ';
}
console.log(str); // '1 2 3 4 5 6'
Il ciclo usa un indice incrementale che parte da 0 e che dovrà sempre essere minore del numero di voci dell'array. Quindi l'indice viene incrementato e usato all'interno del ciclo per accedere a tutte le voci dell'array con la progressione arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]
.
Questo è un ciclo for
standard. C'è poi il caso del ciclo che parte dall'ultimo elemento per arrivare al primo, ossia al rovescio:
// Secondo loop: dall'ultimo al primo elemento con for()
for( j = len - 1; j >= 0; j--) {
str += arr[j] + ' ';
}
console.log(str); // '6 5 4 3 2 1'
In questo caso l'indice non parte da 0 ma dal valore massimo dell'ultimo indice dell'array e ad ogni iterazione stavolta viene decrementato invece che incrementato.
Il ciclo do... while
invece continua ad incrementare o decrementare l'indice finché la condizione espressa nel costrutto while
rimane true
:
// Terzo loop: dal primo all'ultimo elemento con do...while
k = -1;
do {
k++;
str += arr[k] + ' ';
} while(k < len - 1);
console.log(str); // '1 2 3 4 5 6'
// Quarto loop: dall'ultimo al primo elemento con do...while
l = len;
do {
l--;
str += arr[l] + ' ';
} while(l >= 1);
console.log(str); // '6 5 4 3 2 1'
Ad ogni modo il ciclo più usato è indubbiamente for
.