본문 바로가기 메뉴 바로가기

티스토리 뷰

let sHash = new Map();

맵(Map) 기본 개념

👉 맵(Map)이란?

key : value 의 구조로 저장되어 key를 통해 바로 value에 접근할 수 있고, 저장된 순서대로 각 요소들을 접근할 수도 있다. (즉, 인덱스가 아닌 key로 바로 값을 찾고, for of 같은 반복문도 돌릴 수 있다.)

주의 사항 'key는 중복될 수 없다'.

 

Object와의 주요한 차이점은 다음과 같다. 

 

map

  • key는 반드시 구체적인 value가 있을 때만 들어갈 수 있다.
  • key값으로 무엇이든 올 수 있다. (함수, 오브젝트 ...)
  • 전체 사이즈(key의 갯수)를 size() 함수를 통해 간단하게 알 수 있다.
  • 순서대로 key, value, entries 를 호출하기 쉽다. (iterable)

object

  • 프로토타입을 지정해 놓기 때문에 빈 값의 key가 있을 수 있다.
  • key값으로 String 혹은 기호만 올 수 있다.
  • 순서대로 작동시키기 복잡하고 안되는 경우도 있다.

👉 선언방법

 

👉 해시맵 내장함수

let sHash = new Map();
sHash.set(key, value); //key, value값 설정
sHash.get(key); //key의 value를 반환
sHash.delete(key); //key를 지워라
sHash.has(key); //key를 가지고 있는가
sHash.size(); //key의 개수

맵(Map) 응용

👉 알고리즘에서 자주 쓰이는 카운팅

const s = "AcBDsE";
let sH = new Map();

//앞으로 카운팅은 이렇게 한다!!!!!!
for(let x of s){
    //키 값이 이미 있으면 +1, 없으면 1
    sH.set(x, sH.get(x)+1 || 1);
}

 

참고 링크 : 

MDN 링크 Array.prototype.map()

댓글