Array e Metodi Fondamentali
Scopri come lavorare con gli array, i metodi principali e le operazioni più comuni
📦 Cos’è un Array?
Un array è una struttura dati che permette di memorizzare
collezioni ordinate di elementi. Invece di avere 10 variabili
separate per 10 numeri, puoi usare un singolo array!
💡 Array nella Vita Reale
Pensa a un array come a una lista della spesa: hai una lista
con vari elementi (pane, latte, uova), ciascuno in una posizione specifica.
Puoi aggiungere elementi, rimuoverli, cercare se un elemento è presente,
e molto altro!
- ✅ Dinamici: La dimensione può cambiare
- ✅ Eterogenei: Possono contenere tipi diversi
- ✅ Indicizzati: Accesso per posizione (da 0)
- ✅ Ordinati: Gli elementi mantengono l’ordine
Clicca sui pulsanti per vedere gli array in azione!
🎨 Creazione Array
Il modo più comune e leggibile per creare array.
// Array di numeri let numeri = [1, 2, 3, 4, 5]; // Array di stringhe let frutti = ["mela", "banana", "arancia"]; // Array vuoto let vuoto = []; // Array di tipi misti let misto = [1, "due", true, null]; console.log(numeri); // [1, 2, 3, 4, 5] console.log(frutti); // ["mela", "banana", "arancia"]
Meno usato, utile in casi specifici.
// Array con elementi let numeri = new Array(1, 2, 3); // [1, 2, 3] // Array di lunghezza specifica (vuoto) let vuoto = new Array(5); // 5 slot vuoti // ⚠️ Attenzione: un solo numero crea array vuoto! let confuso = new Array(5); // 5 slot vuoti let chiaro = [5]; // [5] (array con elemento 5) // Meglio usare [] per chiarezza!
Crea un array con i tuoi elementi!
🔍 Accesso agli Elementi
💡 Indici degli Array
Gli array JavaScript sono zero-indexed: il primo elemento
è all’indice 0, il secondo all’indice 1, e così via.
let frutti = ["mela", "banana", "arancia", "pera", "kiwi"]; // Accesso per indice positivo console.log(frutti[0]); // "mela" (primo elemento) console.log(frutti[1]); // "banana" console.log(frutti[2]); // "arancia" // Ultimo elemento let ultimo = frutti[frutti.length - 1]; // "kiwi" // Penultimo let penultimo = frutti[frutti.length - 2]; // "pera" // Indice non esistente console.log(frutti[10]); // undefined
let numeri = [10, 20, 30, 40, 50]; // Lunghezza array console.log(numeri.length); // 5 // Modificare length numeri.length = 3; console.log(numeri); // [10, 20, 30] (troncato!) // Svuotare array numeri.length = 0; console.log(numeri); // [] (array vuoto)
Puoi modificare elementi esistenti assegnando un nuovo valore.
let frutti = ["mela", "banana", "arancia"]; // Modifica elemento frutti[1] = "fragola"; console.log(frutti); // ["mela", "fragola", "arancia"]
➕ Aggiungere Elementi
Metodo più usato. Modifica l’array originale e restituisce la nuova lunghezza.
let numeri = [1, 2, 3]; // Aggiungi un elemento numeri.push(4); console.log(numeri); // [1, 2, 3, 4] // Aggiungi più elementi numeri.push(5, 6, 7); console.log(numeri); // [1, 2, 3, 4, 5, 6, 7] // Restituisce la nuova lunghezza let lunghezza = numeri.push(8); console.log(lunghezza); // 8
Inserisce all’inizio spostando tutti gli altri elementi.
let numeri = [3, 4, 5]; // Aggiungi all'inizio numeri.unshift(2); console.log(numeri); // [2, 3, 4, 5] // Aggiungi più elementi numeri.unshift(0, 1); console.log(numeri); // [0, 1, 2, 3, 4, 5]
Prova ad aggiungere elementi a un array!
| Metodo | Dove Aggiunge | Restituisce | Performance |
|---|---|---|---|
push() |
Fine | Nuova lunghezza | ⭐⭐⭐ Veloce |
unshift() |
Inizio | Nuova lunghezza | ⭐ Lento (sposta tutto) |
➖ Rimuovere Elementi
Rimuove e restituisce l’ultimo elemento.
let numeri = [1, 2, 3, 4, 5]; // Rimuovi ultimo elemento let ultimo = numeri.pop(); console.log(ultimo); // 5 console.log(numeri); // [1, 2, 3, 4] // Rimuovi ancora numeri.pop(); console.log(numeri); // [1, 2, 3]
Rimuove e restituisce il primo elemento.
let numeri = [1, 2, 3, 4, 5]; // Rimuovi primo elemento let primo = numeri.shift(); console.log(primo); // 1 console.log(numeri); // [2, 3, 4, 5] // Rimuovi ancora numeri.shift(); console.log(numeri); // [3, 4, 5]
Prova a rimuovere elementi da un array!
| Metodo | Cosa Rimuove | Restituisce | Quando Usare |
|---|---|---|---|
pop() |
Ultimo elemento | Elemento rimosso | Stack (LIFO) |
shift() |
Primo elemento | Elemento rimosso | Queue (FIFO) |
🔎 Metodi di Ricerca
| Metodo | Descrizione | Ritorna | Esempio |
|---|---|---|---|
indexOf() |
Trova prima occorrenza | Indice o -1 | [1,2,3].indexOf(2) → 1 |
lastIndexOf() |
Trova ultima occorrenza | Indice o -1 | [1,2,3,2].lastIndexOf(2) → 3 |
includes() |
Verifica presenza | true/false | [1,2,3].includes(2) → true |
let numeri = [10, 20, 30, 20, 40]; // indexOf - prima occorrenza console.log(numeri.indexOf(20)); // 1 console.log(numeri.indexOf(99)); // -1 (non trovato) // lastIndexOf - ultima occorrenza console.log(numeri.lastIndexOf(20)); // 3 // includes - verifica presenza console.log(numeri.includes(30)); // true console.log(numeri.includes(99)); // false
Cerca un elemento in un array!
🔄 Metodi di Trasformazione
let numeri = [1, 2, 3, 4, 5]; // slice(inizio, fine) - fine esclusa console.log(numeri.slice(1, 3)); // [2, 3] console.log(numeri.slice(2)); // [3, 4, 5] (da 2 fino alla fine) console.log(numeri.slice(-2)); // [4, 5] (ultimi 2) // Array originale invariato console.log(numeri); // [1, 2, 3, 4, 5]
let arr1 = [1, 2]; let arr2 = [3, 4]; let arr3 = [5, 6]; // Unisci array let unito = arr1.concat(arr2); console.log(unito); // [1, 2, 3, 4] // Unisci più array let tuttiUniti = arr1.concat(arr2, arr3); console.log(tuttiUniti); // [1, 2, 3, 4, 5, 6]
let frutti = ["mela", "banana", "arancia"];
// join() con separatore
console.log(frutti.join()); // "mela,banana,arancia" (default: virgola)
console.log(frutti.join(" ")); // "mela banana arancia"
console.log(frutti.join(" - ")); // "mela - banana - arancia"
console.log(frutti.join("")); // "melabananaarancia"
let numeri = [1, 2, 3, 4, 5]; // Inverte l'array numeri.reverse(); console.log(numeri); // [5, 4, 3, 2, 1] // ⚠️ Modifica l'array originale!
Prova le trasformazioni su un array!
- push(), pop()
- shift(), unshift()
- reverse()
- slice()
- concat()
- join()
🔁 Iterare sugli Array
let frutti = ["mela", "banana", "arancia"];
// for classico
for (let i = 0; i < frutti.length; i++) {
console.log(i + ": " + frutti[i]);
}
// 0: mela
// 1: banana
// 2: arancia
// Stampa al contrario
for (let i = frutti.length - 1; i >= 0; i--) {
console.log(frutti[i]);
}
// arancia
// banana
// mela
💪 Esercizi Pratici Interattivi
📝 Esercizio 1: Lista della Spesa
Obiettivo: Gestisci una lista della spesa
Funzionalità:
- Aggiungi prodotti alla lista
- Visualizza tutti i prodotti
- Rimuovi ultimo prodotto
- Cerca se un prodotto esiste
📝 Esercizio 2: Trova Numeri Pari
Obiettivo: Trova tutti i numeri pari in un array
Compiti:
- Chiedi numeri all'utente
- Trova i numeri pari
- Mostra risultati
📝 Esercizio 3: Inverti Array
Obiettivo: Inverti l'ordine di un array SENZA usare reverse()
Compiti:
- Chiedi elementi all'utente
- Invertili manualmente con un loop
- Mostra array originale e invertito
- [] literal
- new Array()
- .length proprietà
- push() / pop()
- unshift() / shift()
- [indice] = valore
- indexOf()
- lastIndexOf()
- includes()
- slice()
- concat()
- join()
- reverse()
Lezione 5 del Corso JavaScript Completo