Накратко
Set пази уникални стойности. Два отделно създадени обекта обаче остават различни, дори свойствата им да изглеждат еднакви.
Полезно е да знаеш
Set е колекция за уникални стойности. Той е удобен, когато от списък с повтарящи се кодове искаш множество без повторения. Стойностите могат да бъдат примитиви или референции към обекти. [1]
Например [...new Set(['bg', 'en', 'bg'])] дава ['bg', 'en']. Външните квадратни скоби със spread превръщат резултата обратно в масив. Това е собствен кратък пример, не функция за нормализиране на езикови кодове.
Главните и малките букви не стават автоматично еднакви. Ако правилото на приложението счита 'BG' и 'bg' за един код, първо трябва да ги нормализираш според това правило. Set не може сам да го отгатне.
При обекти уникалността се отнася до самите референции. Два отделни литерала {id: 1} не са един обект. За премахване на дублирани записи по id е нужно да извлечеш или използваш идентификатора, вместо да очакваш сравнение на всички вложени свойства.
Източници
За повече подробности и проверка на информацията: