본문 바로가기

프로그래밍 언어/자바스크립트

JavaScript Map 객체의 특징과 주요 메서드 살펴보기

JavaScript Map 객체의 특징과 주요 메서드 살펴보기

JavaScript의 Map 객체는 키-값 쌍을 저장하고 관리하는 특별한 자료구조입니다. 기존의 객체와 달리 다양한 자료형을 키로 사용할 수 있으며, 삽입된 순서를 유지하는 특징이 있습니다. 이 글에서는 Map 객체의 구조와 특징을 살펴보고, Map을 효과적으로 활용할 수 있는 주요 메서드에 대해 심도 있게 설명하겠습니다.

 

 

목차

  1. Map 객체란?
  2. Map 객체의 주요 특징
  3. Map 객체 생성 및 초기화
  4. 요소 추가와 삭제: set()delete()
  5. 요소 검색: get()has()
  6. 전체 요소 순회: forEach()for...of

 

1. Map 객체란?

Map 객체는 키-값 쌍을 저장하기 위한 JavaScript의 내장 객체입니다. 일반 객체와 달리, 키로 숫자, 문자열, 객체 등 다양한 데이터 타입을 사용할 수 있습니다. 또한, Map은 삽입된 순서를 유지하는 특성을 가지므로, 데이터의 순서가 중요한 경우 유용하게 사용할 수 있습니다.

 

 

2. Map 객체의 주요 특징

  • 다양한 키 자료형 지원: Map 객체는 숫자, 문자열, 객체 등 모든 데이터 타입을 키로 사용할 수 있습니다. 이는 JavaScript의 일반 객체와 차별화되는 중요한 특징입니다.
  • 키-값 쌍의 개수 확인: size 속성을 통해 Map 객체에 포함된 키-값 쌍의 개수를 쉽게 확인할 수 있습니다.
    예시: map.size;
  • 순서 유지: Map은 삽입된 순서를 유지하므로, 데이터를 추가한 순서대로 키-값 쌍을 저장하고 관리할 수 있습니다.
  • 반복 가능한 구조: Map 객체는 forEach()for...of 같은 반복문을 통해 순회할 수 있어, 데이터 탐색과 처리가 간편합니다.

 

 

3. Map 객체 생성 및 초기화

Map 객체는 new Map() 구문을 통해 생성합니다. 생성 시, 초기값을 배열 형태로 전달하여 초기화할 수도 있습니다. 이때, 각 배열의 요소는 [key, value] 형태의 배열이어야 합니다.

예시:


const map = new Map(); // 빈 Map 생성

const initializedMap = new Map([
    ["key1", "value1"],
    ["key2", "value2"]
]); // 초기값을 가진 Map 생성

 

 

4. 요소 추가와 삭제: set()delete()

Map에 요소를 추가할 때는 set() 메서드를 사용하며, 키와 값을 인자로 전달합니다. delete() 메서드를 사용하면 특정 키에 해당하는 요소를 삭제할 수 있습니다. 또한, clear() 메서드는 Map에 있는 모든 요소를 제거합니다.

예시:


const map = new Map();
map.set("name", "Alice"); // 요소 추가
map.set(123, "numberKey"); // 숫자를 키로 사용

map.delete("name"); // 특정 키 삭제
map.clear(); // 모든 요소 제거

 

 

 

 

5. 요소 검색: get()has()

get() 메서드는 키를 이용해 해당 키의 값을 가져올 때 사용되며, 존재하지 않는 키에 대해 undefined를 반환합니다. has() 메서드는 Map에 특정 키가 존재하는지 확인할 때 유용합니다.

예시:


const map = new Map([["name", "Alice"]]);

console.log(map.get("name")); // 결과: "Alice"
console.log(map.has("name")); // 결과: true
console.log(map.has("age")); // 결과: false

 

 

6. 전체 요소 순회: forEach()for...of

Map 객체는 forEach() 메서드를 사용해 각 요소를 순회할 수 있습니다. for...of 반복문을 활용하여 키, 값, 또는 [key, value] 쌍을 순회할 수도 있습니다. 이를 통해 Map에 저장된 데이터를 효율적으로 처리할 수 있습니다.

예시:


const map = new Map([
    ["name", "Alice"],
    ["age", 30]
]);

// forEach를 사용한 순회
map.forEach((value, key) => {
    console.log(key, value);
});

// for...of를 사용한 순회
for (const [key, value] of map) {
    console.log(key, value);
}