JS - Map 객체


JS의 객체 중 [키, 값] 형태로 값을 담을 수 있는 Map 객체에 대한 메모다.

Map 객체

key-value 를 한 묶음으로 저장하며, 여러개의 묶음을 저장한 순서대로 순회를 할 수 있는 객체이다.

const mapObj1 = new Map();
const mapObj2 = new Map([
  ["key", "value"],
  [{ c1: 100 }, 1212],
  [1, { number: 2 }],
]);

for (let item of mapObj2) {
  console.log(item);
}

// ["key", "value"]
// [{ c1: 100 }, 1212]
// [1, { number: 2 }]

위와 같은 방법으로 생성할 수 있으며, 키 값이 중복된다면 값이 대체됩니다.

키 값 중복 확인은 Same-Value-Zero 알고리즘을 통해 확인한다.

Map과 Object 차이

  1. 키에 사용할 수 있는 타입의 제약

    • Object: String, Symbol만 사용 가능
  2. {key: value}의 갯수

    • Map: size 프로퍼티로 확인

    • Object: 전체를 순회하여 확인

  3. 처리시간

    • 빈번한 key, value의 추가/삭제는 Map의 성능이 더 좋은 경우가 있다고 함

Methods

메소드 파라미터 반환타입 기능
set() [key, value] 인스턴스 순서대로 [key, value]형태 값 추가
get() key value 키에 해당하는 값을 반환
has() key boolean 해당 하는 키의 존재여부 확인
entries() - Iterartor Object 인스턴스 순서대로 Iterartor Object로 반환
keys() - Iterartor Object 인스턴스 키를 순서대로 Iterartor Object로 반환
values() - Iterartor Object 인스턴스 값을 순서대로 Iterartor Object로 반환
Symbol.iterator() - Iterartor Object entries()와 동일
forEach() callback[, this object] undefined callback 함수 인자로 value, key, 인스턴스 순 전달
delete() key boolean 삭제 할 경우 true, 없으면 false
clear() - - Map 객체 삭제 X, 모든 entry 삭제

Tags:

Categories:

Updated: