JavaScript 맵

필수 맵 메서드

메서드 설명
new Map() 새로운 맵 생성합니다.
set() 맵에서 키와 값을 설정합니다.
get() 맵에서 키에 해당하는 값을 가져옵니다.
delete() 키로 지정된 맵 요소를 제거합니다.
has() 키가 맵에 있으면 true를 반환합니다.
forEach() 맵의 각 키/값 쌍에 대한 함수를 호출합니다.
entries() 맵에서 [key, value] 쌍이 있는 iterator를 반환합니다.
속성 설명
size 맵의 요소 수를 반환합니다.

맵 생성 방법

다음 방법으로 Map을 만들 수 있습니다.

  • 배열을 new Map() 으로 전달
  • 맵을 만들고 Map.set()을 사용합니다.

new Map()

배열을 new Map() 생성자에게 전달하여 Map을 생성할 수 있습니다.

예제 1
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

set()

set() 메서드를 사용하여 Map에 요소를 추가할 수 있습니다.

예제 2
const fruits = new Map();

fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);

set() 메서드를 사용하여 기존 Map 값을 변경할 수도 있습니다.

예제 3
fruits.set("apples", 200);

get()

get() 메서드는 맵에서 키에 해당하는 값을 가져옵니다.

예제 4
fruits.get("apples");

size 속성

size 속성은 맵의 요소 수를 반환합니다.

예제 5
fruits.size;

delete()

delete() 메서드는 Map 요소를 제거합니다.

예제 6
fruits.delete("apples");

has()

has() 메서드는 맵에 키가 있는 경우 true를 반환합니다.

예제 7
fruits.has("apples");

fruits.delete("apples");
fruits.has("apples");

forEach()

forEach() 메서드는 맵의 각 키/값 쌍에 대한 함수를 호출합니다.

예제 8
let text = "";
fruits.forEach (function(value, key) {
  text += key + ' = ' + value;
})

entries()

entries() 메서드는 Map에서 [key, values]를 가진 iterator 객체를 반환합니다.

예제 9
let text = "";
for (const x of fruits.entries()) {
  text += x;
}

객체와 맵

JavaScript 객체와 맵의 차이점:

  객체
Iterable 직접 반복할 수 없음 직접 반복 가능
Size 크기 속성이 없음 크기 속성이 있음
Key Types 키는 문자열(또는 기호)이어야 함 키는 모든 데이터 유형일 수 있음
Key Order 키가 정렬되어 있지 않음 키가 정렬되어 있음
Defaults 기본 키 있음 기본 키 없음

지원 브라우저

자바스크립트 맵은 Internet Explorer를 제외한 모든 브라우저에서 지원됩니다.