edubun
Italiano

Array

Un array tiene molti valori in ordine sotto un unico nome. In ["red", "green", "blue"], "red" si trova all'indice 0 e la lunghezza è 3.

Una lista in una variabile

Immagina un programma che registra i punteggi di un'intera classe. Trenta variabili chiamate score1, score2, score3 sarebbero un tormento da gestire, e impossibili da scorrere con un ciclo. Un array è un singolo valore che contiene una lista ordinata di altri valori. Si scrive con parentesi quadre e virgole:

const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length);   // 3
console.log(fruits[0]);       // apple
console.log(fruits[2]);       // cherry

Ogni valore in un array è un elemento. Gli elementi sono numerati per indice, a partire da 0, esattamente come i caratteri di una stringa. Quindi il primo elemento è fruits[0] e l'ultimo è fruits[fruits.length - 1]. Chiedere un indice che non esiste, come fruits[10], non provoca un errore: dà undefined. Un array può contenere qualsiasi tipo di valore, e gli elementi non devono nemmeno essere dello stesso tipo, anche se in pratica di solito lo sono.

Modificare un array

A differenza delle stringhe, gli array si possono modificare sul posto. Per sostituire un elemento assegna un valore a un indice: fruits[1] = "blueberry". Il metodo push aggiunge un elemento alla fine e pop toglie l'ultimo e lo restituisce. unshift e shift fanno lo stesso all'inizio. Funziona anche quando l'array è stato dichiarato con const. const impedisce solo che il nome punti a un array diverso; non blocca il contenuto.

const list = ["milk", "eggs"];
list.push("bread");
console.log(list.length);        // 3
const last = list.pop();
console.log(last);               // bread
console.log(list.join(", "));    // milk, eggs

Altri due metodi rispondono a domande. includes(x) dà true se x è nell'array, e indexOf(x) dà il suo indice, oppure -1 se manca. join(", ") incolla tutti gli elementi in un'unica stringa mettendo fra loro il separatore indicato, ed è il modo più semplice per stampare una lista in modo ordinato.

Scorrere un array con un ciclo

Array e cicli vanno insieme. Un ciclo for con un indice che va da 0 fino alla lunghezza esclusa visita ogni elemento. Il ciclo for...of è più breve quando ti servono solo i valori e non le loro posizioni:

const scores = [70, 85, 90, 55];

for (let i = 0; i < scores.length; i++) {
  console.log(i, scores[i]);
}

let total = 0;
for (const s of scores) {
  total += s;
}
console.log(total / scores.length);   // 75

Nota la condizione i < scores.length, con < e non <=. Con quattro elementi gli indici vanno da 0 a 3, e usando <= si leggerebbe un passo oltre la fine. Questo errore di uno in più è uno dei bug più comuni di tutta la programmazione.

Due nomi, un solo array

Numeri e stringhe vengono copiati quando li assegni a un'altra variabile, gli array no. Dopo const a = [1, 2]; const b = a; entrambi i nomi puntano allo stesso identico array, quindi b.push(3) cambia anche ciò che vedi attraverso a: ora a.length vale 3. Se ti serve una copia separata, scrivi const b = [...a];, che distribuisce gli elementi di a in un array nuovo. Gli oggetti, trattati nella prossima unità, si comportano allo stesso modo.

I riquadri di esercizio di questo sito stampano gli array in forma compatta, come ["a","b"] o [1,2,3]. La console degli strumenti per sviluppatori del browser aggiunge spazi e può mostrarli in modo diverso. Usa join quando vuoi controllare esattamente l'output.

Esempio svolto. Trova il numero più grande in [4, 17, 9, 12] senza Math.max. Comincia con let best = nums[0], scorri gli altri e ogni volta che un elemento è più grande di best, salvalo in best. Dopo il ciclo best vale 17. Lo stesso schema, una variabile che ricorda il migliore trovato finora, serve a trovare la parola più lunga, il prezzo più basso o la data più vicina.

arrayUna lista ordinata di valori fra [ ]
elementoUn valore dentro un array
arr[0]Il primo elemento
arr[arr.length - 1]L'ultimo elemento
push / popAggiungere alla fine / togliere dalla fine
includestrue se il valore è nell'array
joinIncollare gli elementi in un'unica stringa
for...ofScorrere i valori di un array
errore di uno (off-by-one)Andare un passo troppo avanti o troppo indietro, spesso <= invece di <
  1. Che cosa stampa?
    const a = [10, 20, 30];
    console.log(a[1]);
  2. Che cosa stampa?
    const a = [10, 20, 30];
    console.log(a.length);
  3. Che cosa stampa?
    const a = ["x", "y", "z"];
    console.log(a[a.length - 1]);
  4. Che cosa stampa?
    const a = [1, 2];
    a.push(3);
    a.push(4);
    console.log(a.length);
  5. Che cosa stampa?
    const a = [5, 6, 7];
    const x = a.pop();
    console.log(x, a.length);
    • 7 2
    • 5 2
    • 7 3
  6. Che cosa stampa?
    const a = ["cat", "dog"];
    console.log(a.indexOf("bird"));
  7. Che cosa stampa?
    const a = ["a", "b", "c"];
    console.log(a.join("-"));
  8. Che cosa stampa?
    const a = [3, 4, 5];
    let t = 0;
    for (const n of a) {
      t += n;
    }
    console.log(t);
  9. Che cosa stampa?
    const a = [1, 2, 3];
    a[0] = 9;
    console.log(a[0] + a[2]);
  10. Che cosa stampa?
    const a = ["red", "green"];
    console.log(typeof a[5]);
    • undefined
    • Un errore
    • string
  11. Quale intestazione di ciclo visita ogni indice di arr esattamente una volta?
    • for (let i = 0; i < arr.length; i++)
    • for (let i = 0; i <= arr.length; i++)
    • for (let i = 1; i <= arr.length; i++)
Punti chiave
  • Gli array contengono valori ordinati fra [ ]; gli indici partono da 0.
  • L'ultimo elemento è arr[arr.length - 1].
  • push e pop aggiungono e tolgono alla fine; il contenuto di un array const può comunque cambiare.
  • includes, indexOf e join rispondono a domande frequenti.
  • Usa un ciclo con i da 0 finché i < length, oppure for...of per i valori.
Fonti di questo corso (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Consultato il: 2026-10-17