Algorytmy i struktury danych · Junior · Pytanie 74 z 75
Dlaczego Set obiektów nie pomaga usunąć duplikatów o tej samej zawartości?
new Set([{ id: 1 }, { id: 1 }]).size;- ✓Poprawna odpowiedź:
Setporównuje obiekty po referencji, więc oba zostają (size 2) - 2
Setw ogóle nie może przechowywać obiektów - 3
Setporównuje obiekty przezJSON.stringifyi zostawia jeden (size 1)
Wyjaśnienie
Set używa SameValueZero, a dla obiektów oznacza to tożsamość. Aby usunąć duplikaty po zawartości, użyj Map z kluczem z pola identyfikującego: new Map(items.map((x) => [x.id, x])).