Map

Arong·2024년 5월 7일

Map이란?

Map 객체는 키-값 쌍인 집합이다. 한 Map에서의 키는 오직 단 하나만 존재하며, 이는 Map 집합의 유일성이다. Map 객체는 키-값 쌍으로 반복된다.
Map의 명세는 "평균적으로 집합 내 요소의 수에 따라 하위 선형인 접근 시간을 제공하는" 맵을 구현해야 한다고 기술되어 있다. 따라서 복잡성이 O(N)보다 더 나은 경우 내부적으로 해시 테이블(O(1) 룩업), 검색 트리(O(log(N)) 룩업) 또는 기타 데이터 구조로 표현될 수 있다.

Map의 특징

  • Map은 Map.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[key]는 Map을 쓰는 바른 방법이 아니다.
      map[key] = 2로 값을 설정하는 것 같이 map[key]를 사용할 수 있긴 하지만, 이 방법은 map을 일반 객체처럼 취급하게 된다. 따라서 여러 제약이 생길 수 있기 때문에 map을 사용할 땐 map전용 메서드 set, get 등을 사용해야만 한다.

  • 객체를 포함한 어떠한 타입도 키로 사용될 수 있다.

  • Map의 또 다른 장점은 객체는 키 값이 문자열로 변환되지만 Map은 기존 type을 유지한다는 점이다.

  • 맵(Map)의 키는 순회가능하다.




출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Map
https://ko.javascript.info/map-set

profile
아롱의 개발일지

0개의 댓글