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);
}
참고 링크 :
'FE 개발노트 > Javascript' 카테고리의 다른 글
자바스크립트의 에러 생성 과정과 NativeError 예시 (0) | 2021.10.03 |
---|---|
객체의 구조 타입을 구분하는 방법은 ? feat. 프로토타입체인 이해 (0) | 2021.09.28 |
히든클래스(shape) 란? js 에서 잘 활용하려면? (0) | 2021.09.13 |
[Javascript] 겟 방식으로 url에 들어간 스트링 값의 기호 깨짐 해결 (0) | 2021.02.02 |