Algorithmen und Datenstrukturen · Junior · Frage 74 von 75
Warum taugt ein Set aus Objekten nicht, um doppelte Objekte mit gleichem Inhalt zu entfernen?
new Set([{ id: 1 }, { id: 1 }]).size;- 1Ein
Setvergleicht Objekte per Referenz, also bleiben zwei verschiedene Objekte beide (size 2) - 2Ein
Setkann überhaupt keine Objekte speichern - 3Ein
Setvergleicht Objekte perJSON.stringifyund behält eines (size 1)
Antwort zeigen
Richtige Antwort: Ein Set vergleicht Objekte per Referenz, also bleiben zwei verschiedene Objekte beide (size 2)
Erklärung
Set nutzt SameValueZero, was bei Objekten Identität bedeutet. Um nach Inhalt zu deduplizieren, nutze eine Map mit einem identifizierenden Feld als Schlüssel: new Map(items.map((x) => [x.id, x])).