본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다.
37.2 Map
- 키와 값의 쌍으로 이루어진 컬렉션
- 객체와 유사
- 키로 객체를 포함한 모든 값 사용 가능
- 이터러블
37.2.1 Map 객체의 생성
- Map 생성자 함수로 생성
- 인수를 전달하지 않으면, 빈 Map 객체가 생성
- 인수는 키와 값의 쌍으로 된 요소로 구성된 이터러블을 전달 받아야 함
- 중복된 키를 추가 하면 갚이 덮어써짐
const mapForCats = new Map([['siru', 'cat'], ['mummum', 'dog']]);
console.log(mapForCats); // Map(2) {'siru' => 'cat', 'mummum' => 'dog'}
37.2.2 요소 개수 확인
- Map.prototype.size
const {size} = new Map([['siru', 'cat'], ['mummum', 'dog']]);
console.log(size); // 2
37.2.3 요소 추가
- Map.prototype.set
- 연속하여 사용 가능
const mapForCats = new Map();
mapForCats.set('siru', 'cat');
console.log(mapForCats); // Map(1) {'siru' => 'cat'}
37.2.4 요소 취득
- Map.prototype.get
const mapForCats = new Map();
mapForCats.set('siru', 'cat');
console.log(mapForCats.get('siru')); // cat
37.2.5 요소 존재 여부 확인
- Map.prototype.has
const mapForCats = new Map();
mapForCats.set('siru', 'cat');
console.log(mapForCats.has('siru')); // true
console.log(mapForCats.has('nunu')); // false
37.2.6 요소 삭제
- Map.prototype.delete
- 삭제 성공시 여부를 나타내는 불리언 반환
const mapForCats = new Map([['siru', 'cat'], ['mummum', 'dog']]);
mapForCats.delete('mummum');
console.log(mapForCats); // Map(1) {'siru' => 'cat'}
37.2.7 요소 일괄 삭제
- Map.prototype.clear
- undefined 반환
const mapForCats = new Map([['siru', 'cat'], ['mummum', 'dog']]);
mapForCats.clear();
console.log(mapForCats); // Map(0) {}
37.2.8 요소 순회
- Map.prototype.forEach
- 첫 번째 인수: 현재 순회 중인 요소 값
- 두 번째 인수 : 현재 순회 중인 요소 키
- 세 번째 인수 : 현재 순회 중인 Map 객체 자체
- Map 객체는 이터러블 이므로 아래와 같은 이터레이터인 객체 반환 메서드들을 제공
- Map.prototype.keys : Map 객체의 요소키를 값으로 갖는 이터러블이며 이터레이터인 객체 반환
- Map.prototype.values : Map 객체에서 요소값을 값으로 갖는 이터러블이며 이터레이터인 객체 반환
- Map.prototype.entries: Map 객체에서 요소값을 값으로 갖는 이터러블이며 이터레이터인 객체를 반환
const mapForCats = new Map([['siru', 'cat'], ['mummum', 'dog']]);
mapForCats.forEach((cat) => console.log(cat));
'programming study > JavaScript' 카테고리의 다른 글
38장. 브라우저의 렌더링 과정(2) (0) | 2022.05.06 |
---|---|
38장. 브라우저의 렌더링 과정(1) (0) | 2022.05.05 |
37장. Set과 Map(1) (0) | 2022.05.03 |
36장. 디스트럭처링 할당 (0) | 2022.05.02 |
34장. 이터러블(2) (0) | 2022.04.30 |