Алгоритми та структури даних · Junior · Запитання 74 з 75
Чому Set об'єктів не допомагає прибрати дублікати з однаковим вмістом?
new Set([{ id: 1 }, { id: 1 }]).size;- ✓Правильна відповідь:
Setпорівнює об'єкти за посиланням, тож обидва лишаються (size 2) - 2
Setузагалі не може зберігати об'єкти - 3
Setпорівнює об'єкти черезJSON.stringifyі лишає один (size 1)
Пояснення
Set використовує SameValueZero, а для об'єктів це тотожність. Щоб прибрати дублікати за вмістом, використайте Map за ідентифікаційним полем: new Map(items.map((x) => [x.id, x])).