Primi passi con gli array JavaScript

Short link

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:

  1. for
  2. 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.