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 di item. 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 in acc (accumulatore).
  • Controlla se l’elemento esiste già in acc usando includes().

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 in uniqueArray.

Quale metodo scegliere?

La scelta del metodo dipende dal contesto:

  • Set(): il più semplice e veloce per la maggior parte dei casi.
  • filter() e indexOf(): 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à.


Risorse aggiuntive

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna in alto