JavaScript: rimuovere gli elementi duplicati da un array di oggetti

JavaScript: rimuovere gli elementi duplicati da un array di oggetti

Rimuovere gli elementi duplicati da un array di oggetti JavaScript è una comune sfida che i programmatori affrontano quando lavorano con dati complessi. Gli oggetti JavaScript possono essere molto diversi tra loro, rendendo il processo di rimozione dei duplicati un po' più complesso rispetto a un array di valori primitivi come numeri o stringhe. In questo articolo, esploreremo diverse tecniche per affrontare questo problema.

Utilizzo di un set (ES6)

Con l'introduzione di ECMAScript 6 (ES6), è diventato più semplice rimuovere gli elementi duplicati da un array. La struttura dati Set è stata introdotta per gestire collezioni di valori unici. Ecco come puoi utilizzare un Set per rimuovere duplicati da un array di oggetti:


const items = [
  { id: 1, name: "Object 1" },
  { id: 2, name: "Object 2" },
  { id: 1, name: "Object 1" },
  { id: 3, name: "Object 3" }
];

const unique = Array.from(new Set(items.map([))).map(JSON.parse);

console.log(unique);

In questo esempio, stiamo convertendo temporaneamente ciascun oggetto in una stringa JSON e quindi creando un Set da quelle stringhe per rimuovere gli oggetti duplicati. Infine, convertiamo nuovamente le stringhe JSON in oggetti.

Utilizzo di un ciclo for con oggetti unici

Un'altra soluzione per rimuovere duplicati da un array di oggetti è utilizzare un ciclo for per iterare sull'array e mantenere traccia degli oggetti unici in un nuovo array. Ecco un esempio:


const items = [
  { id: 1, name: "Object 1" },
  { id: 2, name: "Object 2" },
  { id: 1, name: "Object 1" },
  { id: 3, name: "Object 3" }
];

const unique = [];

for (const item of items) {
  const found = unique.find((element) => element.id === item.id);

  if (!found) {
    unique.push(item);
  }
}

console.log(unique);

In questo caso, stiamo scorrendo l'array originale e verificando se ogni oggetto è già presente nell'array unique utilizzando il metodo find(). Se l'oggetto non esiste ancora nell'array, lo aggiungiamo a unique.

Conclusione

Rimuovere gli elementi duplicati da un array di oggetti JavaScript può essere affrontato in diversi modi, a seconda delle tue preferenze e dei requisiti del progetto. L'utilizzo di un Set è un approccio moderno ed efficiente, ma è possibile ottenere risultati simili con cicli for. Scegli la soluzione che meglio si adatta al tuo caso d'uso e alle tue preferenze di sviluppo.

Torna su