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]); // cherryOgni 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, eggsAltri 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); // 75Nota 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.
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.
| array | Una lista ordinata di valori fra [ ] |
| elemento | Un valore dentro un array |
| arr[0] | Il primo elemento |
| arr[arr.length - 1] | L'ultimo elemento |
| push / pop | Aggiungere alla fine / togliere dalla fine |
| includes | true se il valore è nell'array |
| join | Incollare gli elementi in un'unica stringa |
| for...of | Scorrere i valori di un array |
| errore di uno (off-by-one) | Andare un passo troppo avanti o troppo indietro, spesso <= invece di < |
- Che cosa stampa?
const a = [10, 20, 30]; console.log(a[1]); - Che cosa stampa?
const a = [10, 20, 30]; console.log(a.length); - Che cosa stampa?
const a = ["x", "y", "z"]; console.log(a[a.length - 1]); - Che cosa stampa?
const a = [1, 2]; a.push(3); a.push(4); console.log(a.length); - Che cosa stampa?
const a = [5, 6, 7]; const x = a.pop(); console.log(x, a.length);- 7 2
- 5 2
- 7 3
- Che cosa stampa?
const a = ["cat", "dog"]; console.log(a.indexOf("bird")); - Che cosa stampa?
const a = ["a", "b", "c"]; console.log(a.join("-")); - Che cosa stampa?
const a = [3, 4, 5]; let t = 0; for (const n of a) { t += n; } console.log(t); - Che cosa stampa?
const a = [1, 2, 3]; a[0] = 9; console.log(a[0] + a[2]); - Che cosa stampa?
const a = ["red", "green"]; console.log(typeof a[5]);- undefined
- Un errore
- string
- 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++)
- 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