아무튼 개발
article thumbnail
반응형

 

Map

Map 객체는 key와 value의 쌍으로 이루어진 collection이다.

 

사용법

- Map 객체 생성하기

Map 생성자 함수로 만들 수 있다.

이터러블을 인수로 전달받으며, 키와 값으로 이루어진 요소여야 한다.

인수를 전달하지 않으면 빈 Map 객체가 생성된다.

const map = new Map(['key1', 'value1'], ['key2', 'value2']);

Map 객체는 중복 Key를 가지지 않는다.

key가 중복될 경우, 마지막 값으로 입력된다.

 

- 요소 개수 확인하기

size 프로퍼티로 요소의 개수를 받아온다.

const count = map.size; // 2

위에서 생성한 map의 개수는 2개이므로 2가 반환된다.

 

- 요소 추가하기

set 메서드를 사용해 Map 객체에 요소를 추가한다.

결괏값은 새롭게 추가된 Map 객체를 반환한다. 따라서 연속적으로 호출도 가능하다.

특히 NaN과 NaN, +0과 -0을 같다고 평가하기에 중복이라는 점을 주의해야 한다.

map.set('key3', 'value3');

 

- 요소 가져오기

get 메서드를 사용해 특정 요소를 가져온다.

인수로 key를 전달한다.

key 요소가 존재하지 않는다면 undefined가 반환된다.

console.log(map.get('key1')); // value1
console.log(mag.get('keykey')); // undefined

 

- 요소 존재 확인하기

has 메서드를 사용해 특정 요소의 존재 여부를 확인한다.

boolean으로 결괏값을 반환한다.

console.log(map.has('key1')); // true
console.log(mag.has('keykey')); // false

 

- 특정 요소 삭제하기

delete 메서드를 사용해 요소를 삭제한다.

boolean으로 결과값을 반환한다.

map.delete('key1');

존재하지 않는 key라면 에러가 발생하지 않고 단순히 무시된다.

 

- 전체 요소 삭제하기

clear 메서드를 사용해 요소를 일괄적으로 삭제한다.

결괏값은 항상 undefined이다.

map.clear();

 

객체(Object)와의 차이

- key 값

  • Object: 문자열 or Symbol값
  • Map: 객체를 포함한 모든 값
const kim = { age: 20 };

map.set(kim, 'student'); // 객체를 key로 사용

 

- 이터러블

  • Object: 불가(X)
  • Map: 가능(O)
// forEach
map.forEach((v, k, map) => console.log(v, k, map));

// for of
for (const entry of map) {
	console.log(entry); // [['key1', 'value1']['key2', 'value2']]
}

// spread 연산자
console.log([...map]); // [['key1', 'value1']['key2', 'value2']]

 

- 요소 개수 값

  • Object: length
  • Map: size
반응형
profile

아무튼 개발

@릴쥬

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...