반응형
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
반응형
'Front-end > JavaScript' 카테고리의 다른 글
[JS] 데이터 타입 - 원시 타입 알아보기 (0) | 2023.03.20 |
---|---|
[JS] 모듈 export, import 사용하기 (0) | 2023.03.19 |
[JS] 2진수, 8진수, 16진수, 10진수 변환하기 (2) | 2023.03.10 |
[JS] arguments 객체 | 나머지 매개변수 (0) | 2023.03.06 |
[JS] 매개변수(parameter)와 인자(argument)의 차이 (0) | 2023.03.03 |