[javascript] 맵 (Map) 데이터 구조
맵(Map)은 키-값(key-value) 쌍을 저장하는 데이터 구조로, 각 키는 유일해야 하며 해당하는 값에 접근할 수 있다. 맵은 객체와 유사하지만 맵은 순서대로 키-값 쌍을 저장하며 효율적인 반복(iteration)을 제공한다. 또한 객체와 달리 맵은 이터러블(iterable)하며 크기 속성(size property)을 간편하게 확인할 수 있다.
맵 생성하기
맵은 new Map()
을 사용하여 생성할 수 있다. 초기 값을 가지는 경우에는 배열의 배열 형태로 전달할 수 있다.
예시:
// 빈 맵 생성
let myMap = new Map();
// 초기 값을 가지는 맵 생성
let fruitMap = new Map([
['apple', 5],
['banana', 10],
['orange', 7]
]);
맵 메서드
값 조회하기
get(key)
: 특정 키에 해당하는 값을 반환한다.has(key)
: 특정 키가 맵에 존재하는지를 확인한다.
값 설정하기
set(key, value)
: 특정 키에 값을 설정하거나, 이미 존재하는 경우 값을 업데이트한다.
값 제거하기
delete(key)
: 특정 키와 해당하는 값을 맵에서 제거한다.clear()
: 맵의 모든 키-값 쌍을 제거한다.
기타
size
: 맵의 현재 크기를 반환한다.keys()
: 모든 키를 포함하는 이터레이터(iterator)를 반환한다.values()
: 모든 값을 포함하는 이터레이터(iterator)를 반환한다.entries()
: 모든 키-값 쌍을 포함하는 이터레이터(iterator)를 반환한다.
사용 예시
// 맵 생성
let fruitMap = new Map([
['apple', 5],
['banana', 10],
['orange', 7]
]);
// 값 조회하기
console.log(fruitMap.get('apple')); // 5
console.log(fruitMap.has('banana')); // true
// 값 설정하기
fruitMap.set('apple', 6);
fruitMap.set('kiwi', 3);
// 값 제거하기
fruitMap.delete('orange');
fruitMap.clear();
// 기타
console.log(fruitMap.size); // 0
console.log([...fruitMap.keys()]); // []
console.log([...fruitMap.values()]); // []
맵은 데이터를 유지 관리하고 접근할 때 유용하며, ES6 이후 자바스크립트에서 기본적으로 제공되는 데이터 구조 중 하나이다.
더 자세한 내용은 MDN web docs를 참고할 수 있다.