JavaScript가 다양하고 복잡한 프로그램을 만드는 데 유용함에도 현실 세계를 반영하는 데에 부족한 부분을 보완하기 위해서 Map, Set과 같은 추가적인 자료구조(데이터의 형태)가 등장
객체처럼 key-value pair를 저장. key에 어떤 데이터타입도 다 들어올 수 있으며, key는 정렬된 순서로 저장된다. 검색, 삭제, 제거, 여부 확인 등의 기능이 있다.
const myMap = new Map();
myMap.set('key', 'value'); // 저장
...
...
myMap.get('key') // 검색
const myMap = new Map();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.set("three", 3);
console.log(myMap.keys()); // [Map Iterator] {'one', 'two', 'three'}
for (const key of myMap.keys()) {
console.log(key);
} // one two three
console.log(myMap.values()); // [Map Iterator] {'1', '2', '3'}
for (const value of myMap.values()) {
console.log(value);
} // 1 2 3
console.log(myMap.entries());
// [Map Entries] { ['one',1], ['two', 2], ['three', 3] }
for (const entry of myMap.entries()) {
console.log(entry);
} // ['one', 1] ['two', 2] ['three' 3]
고유한 값을 저장하는 자료구조이다. Map과 다르게 key는 저장하지 않고, value만 저장한다. 값이 중복되지 않는 유일한 요소로만 구성된다. 값을 추가, 검색, 모든 값 제거, 존재 여부 확인 등의 기능이 있다.
const mySet = new Set();
mySet.add("value1");
mySet.add("value2");
mySet.add("value2");
console.log(mySet.size); // value2가 중복된 값이므로 2 출력
console.log(mySet.has("value3")); // false
for (const value of mySet.values()) {
console.log(value);
}; // value1 value2