Rimuovi duplicati da un array JavaScript
Introduzione
In questo articolo vedremo come rimuovere i duplicati da un array JavaScript utilizzando diverse tecniche. Che tu sia un neofita o uno sviluppatore esperto, troverai esempi pratici e spiegazioni dettagliate per eliminare i duplicati in modo semplice ed efficace. Ti mostrerò più approcci per soddisfare ogni esigenza: dalle soluzioni più moderne e performanti a quelle più basilari.
Tecniche per rimuovere i duplicati da un array JavaScript
1. Utilizzare Set()
per rimuovere duplicati (Metodo più semplice)
Il metodo più veloce per rimuovere i duplicati è utilizzare l’oggetto Set
, che non consente valori duplicati.
Ecco come fare:
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
Spiegazione:
Set
converte l’array in un insieme di valori univoci.- Lo spread operator (
...
) riconverte il set in un array normale.
2. Rimuovere duplicati con filter() e indexOf()
Un’altra soluzione è utilizzare il metodo filter()
insieme a indexOf()
.
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
Spiegazione:
filter()
itera su ogni elemento dell’array.indexOf(item)
restituisce l’indice della prima occorrenza diitem
. Se l’indice corrente è uguale a quello della prima occorrenza, l’elemento è unico.
3. Metodo con reduce()
Possiamo anche utilizzare reduce()
per costruire un nuovo array senza duplicati.
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((acc, item) => {
if (!acc.includes(item)) {
acc.push(item);
}
return acc;
}, []);
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
Spiegazione:
reduce()
accumula il risultato inacc
(accumulatore).- Controlla se l’elemento esiste già in
acc
usandoincludes()
.
4. Approccio con forEach()
Per un controllo più personalizzato, puoi usare forEach()
.
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [];
array.forEach(item => {
if (!uniqueArray.includes(item)) {
uniqueArray.push(item);
}
});
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
Spiegazione:
forEach()
scorre ogni elemento e controlla se è già presente inuniqueArray
.
Quale metodo scegliere?
La scelta del metodo dipende dal contesto:
Set()
: il più semplice e veloce per la maggior parte dei casi.filter()
eindexOf()
: utile per comprendere meglio il funzionamento degli array.reduce()
: potente e flessibile.forEach()
: ideale per personalizzare il comportamento durante l’iterazione.
Conclusione
Rimuovere duplicati da un array JavaScript è un’operazione comune che puoi affrontare in diversi modi. Se sei alle prime armi, inizia con Set()
. Man mano che acquisisci esperienza, prova anche gli altri metodi per capire quale si adatta meglio alle tue necessità.