[JavaScript 문법] Map

조아영·2024년 7월 23일

📌

Map은 키-값 쌍(key-value pair)을 저장하는 객체와 비슷합니다. 각 쌍의 키와 값을 저장하며, 객체와 달리 키로 사용할 수 있는 모든 유형을 사용할 수 있습니다.
키가 정렬된 순서로 저장되기 때문에, 추가한 순서대로 반복할 필요가 없습니다.

◼ 기능

  • 키-값 쌍 추가 및 검색(set)
  • 키-값 쌍 삭제(delete)
  • 모든 키-값 쌍 제거(clear)
  • 크기 및 존재 여부 확인(size)

◼ 주요 메서드, 프로퍼티

new Map() : 맵을 만듭니다.
map.set(key, value) : key를 이용해 value를 저장합니다.
map.get(key) : key에 해당하는 값을 반환합니다. key가 존재하지 않으면 undefined를 반환합니다.
map.has(key) : key가 존재하면 true, 존재하지 않으면 false를 반환합니다.
map.delete(key) : key에 해당하는 값을 삭제합니다.
map.clear() : 맵 안의 모든 요소를 제거합니다.
map.size : 요소의 개수를 반환합니다.

◼ 생성 및 사용

// Map() 생성자로 생성
const myMap = new Map();

// set() 메소드를 사용해 값을 추가
myMap.set("key", "value");

// get() 메소드를 사용해 검색
console.log(myMap.get("key")); // 'value'

◼ 반복

for …of 반복문

for of 반복문은 ES6에 추가된 새로운 컬렉션 전용 반복 구문입니다.
for of 구문을 사용하기 위해선 컬렉션 객체가 [Symbol.iterator] 속성을 가지고 있어야만 합니다(직접 명시 가능).

iterator(반복자)

요소 하나하나를 반복할 수 있도록 배열 또는 객체와 비슷한 형태로 열거되어있는 자료구조.
예시 코드에서 myMap.keys()으로 쓸 수 있는 이유는 myMap.key()가 반환하는 값이 iterator이기 때문입니다.

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 ]
}

◼ 크기 및 존재 여부 확인

const myMap = new Map();
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);

// size 속성을 이용해 크기 확인
console.log(myMap.size); // 3

// has() 메소드를 사용해 특정 키가 존재하는지 확인
console.log(myMap.has("two")); // true

0개의 댓글