<aside> 💡
Set 객체는 중복되지 않는 유일한 값들의 집합이다.
</aside>
Set 생성자 함수는 이터러블을 인수로 전달받아 SSet 객체를 생성한다. 이때, 이터러블의 중복된 값은 Set 객체에 요소로 저장되지 않는다.
Set 객체는 이터러블이다. 따라서 for…of 문으로 순회할 수 있고, 스프레드와 디스트럭처링의 대상이 될 수 있다.
<aside> 💡
Map 객체는 키와 값의 쌍으로 이루어진 컬렉션이다.
</aside>
Map 생성자 함수도 이터러블을 인수로 전달받아 Map 객체를 생성한다. 이때, 인수로 전달되는 이터러블은 키와 값의 쌍으로 이루어진 요소로 구성되어야 한다.
const map1 = new Map([['key1', 'value1'], ['key2', 'value2'], ['key1', 'value3']]);
console.log(map1); // Map(2) {"key1" => "value3", "key2" => "value2"}
const map2 = new Map([1, 2]); // TypeError: Iterator value 1 is not an entry object
이때, 중복된 키를 갖는 요소가 존재하면 값이 덮어써진다. 따라서, Map 객체에는 중복된 키를 갖는 요소가 존재할 수 없다.
Set 객체는 이터러블이다. 그리고 이터러블이면서 동시에 이터레이터인 객체를 반환하는 메서드를 제공한다(keys, values, entries)