Rimuovere duplicati da un array in JavaScript

La gestione di array è un'attività essenziale nella programmazione, e spesso ci si trova di fronte al compito di rimuovere duplicati. In questa pagina, esamineremo in modo approfondito come affrontare la rimozione dei duplicati da un array utilizzando JavaScript, fornendo spiegazioni chiare e illustrando esempi pratici.

Cominciamo definendo un array contenente elementi con duplicati:

// Definizione dell'array con duplicati
var arrayConDuplicati = [1, 2, 3, 4, 1, 2, 5, 6, 3];

Rimuovere duplicati usando i set

JavaScript offre una soluzione elegante utilizzando un oggetto Set, una struttura dati che non consente duplicati. Creiamo un Set utilizzando l'array e poi convertiamolo nuovamente in un array.

// Creazione di un Set per rimuovere duplicati
var setSenzaDuplicati = new Set(arrayConDuplicati);

// Conversione del Set in un array senza duplicati
var arraySenzaDuplicati = [...setSenzaDuplicati];

In questo codice, creiamo un nuovo Set chiamato setSenzaDuplicati utilizzando l'array originale. Un Set non può contenere duplicati, quindi automaticamente vengono rimossi. Successivamente, convertiamo il Set in un array utilizzando la sintassi degli spread operator ([...setSenzaDuplicati]).

Rimuovere duplicati usando un ciclo ed un array temporaneo

Se desideriamo un approccio più manuale o supportato da versioni più vecchie di JavaScript, possiamo utilizzare un ciclo per scorrere l'array e un array temporaneo per accumulare solo i valori unici.

// Inizializzazione di un array temporaneo per accumulare valori unici
var arrayTemporaneo = [];
 
// Ciclo per rimuovere duplicati
for (var i = 0; i < arrayConDuplicati.length; i++) {
	if (arrayTemporaneo.indexOf(arrayConDuplicati[i]) === -1) {
		arrayTemporaneo.push(arrayConDuplicati[i]);
	}
}

In questo codice, utilizziamo un array temporaneo e un ciclo for per scorrere l'array originale. Con l'aiuto di indexOf, verifichiamo se l'elemento è già presente nell'array temporaneo. Se non è presente, lo aggiungiamo all'array temporaneo.

Infine, possiamo stampare l'array risultante senza duplicati sulla console o presentarlo in modo più interattivo all'utente, a seconda del contesto dell'applicazione.

// Stampa dell'array senza duplicati sulla console
console.log("L'array senza duplicati è: " + arrayTemporaneo);

Considerazioni finali

È importante notare che l'ordine degli elementi può variare nell'approccio utilizzando un Set, poiché i Set non mantengono un ordine specifico. Nel secondo approccio manuale, l'ordine originale degli elementi viene mantenuto.