Language/JavaScript

[JavaScript] Map 심화

IT수정 2024. 9. 18. 15:11

Map

객체와의 차이점

  • 맵은 순서를 보장한다.
  • 맵은 반복이 가능한 객체이다.
  • 맵은 모든 데이터 타입의 키를 허용한다.
  • 맵은 키를 문자열로 취급하지 않는다.

위와 같은 특징들로 인해 맵은 키의 순서가 보장되어야 할 때나 객체의 키가 객체에 허용되지 않는 데이터 타입인 경우에 사용되며, 이외에는 객체가 사용된다.

 

new Map()

새로운 맵을 생성 한다. 이때 괄호 안에 반복이 가능하면서 키와 값 쌍인 객체를 받으면, 해당 값이 추가된 맵을 생성 한다.

const arr = [[1, 'a'], [2, 'b']];
const aMap = new Map(arr);

console.log(aMap); // {1 => 'a', 2 => 'b'}

 

set()

주어진 키와 값을 맵에 추가한다.

const aMap = new Map();

aMap.set(1, 'a');
aMap.set(2, 'b');

console.log(aMap); // {1 => 'a', 2 => 'b'}

 

get()

인자로 전달받은 키에 해당하는 값을 반환한다. 이때 만약 해당 키가 맵에 존재하지 않은 경우 undefined를 반환한다.

const arr = [[1, 'a'], [2, 'b']];
const aMap = new Map(arr);

console.log(aMap.get(2)); // b
console.log(aMap.get(3)); // undefined

 

has()

인자로 전달받은 키가 맵에 존재하는지에 따라 boolean 값을 반환한다.

const arr = [[1, 'a'], [2, 'b']];
const aMap = new Map(arr);

console.log(aMap.has(1)); // true
console.log(aMap.has(3)); // false

 

delete()

인자로 전달받은 키에 해당하는 값을 삭제한다. 존재하지 않는 키 값을 전달하는 경우 false를 반환한다.

const arr = [[1, 'a'], [2, 'b']];
const aMap = new Map(arr);

console.log(aMap.delete(2)); // true
console.log(aMap.delete(3)); // false
console.log(aMap); // [[1, 'a']]

 

clear()

맵에 들어있는 프로퍼티들을 모두 제거하고 비어있는 상태로 만든다.

const arr = [[1, 'a'], [2, 'b']];
const aMap = new Map(arr);

aMap.clear();
console.log(aMap); // []

 

size

맵에 저장된 요소의 개수를 반환한다.

const arr = [[1, 'a'], [2, 'b']];
const aMap = new Map(arr);

console.log(aMap.size); // 2

'Language > JavaScript' 카테고리의 다른 글

[JavaScript] 구조 분해 할당  (1) 2024.09.18
[JavaScript] 클래스  (0) 2024.09.18
[JavaScript] Set 심화  (0) 2024.09.18
[JavaScript] 객체 심화  (0) 2024.09.18
[JavaScript] 배열 심화  (0) 2024.09.16