Javascript Map 자료 구조

이동환·2023년 4월 11일

javascript

목록 보기
1/5

공부하게 된 계기 : 알고리즘 문제를 풀던 중 객체의 key를 number 타입 변수로 사용하는 경우가 있었다. js는 알아서 형변환을 시켜준다고 하지만 그래도 key 타입의 다양화를 위해 만들어 졌다고 생각되는 Map을 사용해보면 어떨까 하는 생각이 들어서 Map 공부를 시작했다.

Map은 키-값 구조를 가지는 자료구조이다.

JS에서 전통적으로 사용하는 key-value 구조는 Object이다. 그런데도 ES6에서 Map 자료구조가 나왔다는 것은 어떠한 문제를 보완하기 위함일 것이라고 생각이 든다.

Map과 Object의 차이를 알아보면 Map의 등장 배경과 특징을 알 수 있을 것이다.

Map과 Object의 차이
1. Object는 key로 String과 Symbol 만을 받을 수 있지만 Map은 모든 타입을 받을 수 있다.
2. Object는 크기를 알아내기 위해 Object.key(obj) 등을 사용해서 조금 복잡하게 알아내야 하지만 Map은 size() 메소드를 통해 바로 알아낼 수 있다.
3. Object는 순서를 보장하지 않지만 Map은 key-value 쌍이 추가된 순서를 유지한다.
4. 메모리 사용량은 일반적으로 Object가 작고 효율적이지만 대규모 데이터에서의 검색 등에는 Map이 효율적일 때가 많다.
5. Object는 JSON.stringify() 등을 통해 직렬화하고 통신에 사용할 수 있지만 Map은 추가 작업이 필요하다.

Map의 주요 메소드

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 – 요소의 개수를 반환합니다.

profile
개발을 즐기고 싶다.

0개의 댓글