Bae

[Javascript] Map 심화 본문

Javascript

[Javascript] Map 심화

Bae:) 2022. 2. 27. 10:00

ㅁ Map

- 객체와의 차이점

  1) 맵은 순서를 보장한다.

  2) 맵은 반복이 가능한 객체이다.

  3) 맵은 모든 데이터 타입의 키를 허용한다.

  4) 맵은 키를 문자열로 취급하지 않는다.

  * 맵은 키의 순서가 보장되어야 하거나 객체의 키가 객체에 허용되지 않는 데이터 타입인 경우에 사용됨

     이외에는 객체가 사용됨

 

- new Map()

  new Map()은 새로운 맵을 생성

  키로 지정된 1과 2가 문자열로 변환된 것이 아니라, 숫자 그대로 키가 됨(객체는 문자열로 변환)

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

console.log(aMap);

 

- set()

  set()은 주어진 키와 값을 맵에 추가

const aMap = new Map();

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

console.log(aMap);

 

- get()

  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()

  has()는 인자로 전달받은 키가 맵에 존재하는지에 따라 true 또는 false 값을 반환

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

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

 

- delete()

  delete()는 인자로 전달받은 키에 해당하는 값을 삭제, 삭제 여부를 true 또는 false 값으로 반환

  존재하지 않는 키 값을 전달하는 경우 에러가 발생하지 않고 false를 반환

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

console.log(aMap.delete(2));	// true
console.log(aMap.delete(3));	// false

 

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

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

aMap.clear();
console.log(aMap);

 

- size

  size는 맵에 저장된 요소의 개수(맵의 크기)를 반환

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

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