1. new Map() : 맵 생성
2. map.set(key, value) : key를 이용해 value 저장
3. map.get(key) : key에 해당하는 값 반환 | 없으면 undefined
4. map.has(key) : key : key ? true : false
5. map.delete(key) : key 값 삭제
6. map.clear() : 맵 안의 모든 요소 제거
7. map.size : 요소 개수 반환
let map = new Map();
map.set('10', 'str');
map.set(1, 'num1');
map.set(true, 'boolean');
console.log(map.get(1)); //num1
console.log(map.get('10')); //str
console.log(map.size); //3
let john = {name :"john"};
let visitsCountMap = new Map();
visitsCountMap.set(john, 123);
console.log(visitsCountMap.get(john)); //123
let map_key = {name: "shin"};
let visitCountObj = {}
visitCountObj[shin] = 123;
console.log(visitCountObj); // shin is not defined
visitCountObj['shin'] = 123;
console.log(visitCountObj)//{ shin: 123 }
※ 맵이 키를 비교하는 방식
⇒ 수정하거나 커스터 마이징 불가
※ 체이닝
map.set('1', 'str1')
.set(1, 'num1')
.set(true, 'bool1');
let recipeMap = new Map([
['cucumber', 500],
['tomatoes', 350],
['onion', 50],
]);
for(let vegetable of recipeMap.values()){
console.log('vegetable', vegetable);
}
for(let amount of recipeMap.values()){
console.log('amount', amount);
}
for(let entry of recipeMap){
console.log('entry',entry);
}
vegetable 500
vegetable 350
vegetable 50
amount 500
amount 350
amount 50
entry [ 'cucumber', 500 ]
entry [ 'tomatoes', 350 ]
entry [ 'onion', 50 ]
let prices = Object.fromEntries([
['banana', 1],
['orange', 2],
['meat', 4]
]);
console.log(prices); //{ banana: 1, orange: 2, meat: 4 }
console.log(prices.meat); //4
let obj = Object.fromEntries(map.entries());
(*)로 표시한 줄을 좀 더 짧게 줄이는 것도 가능
let obj = Object.fromEntries(map) //.entries() 생략
Object.fromEntries
는 인수로 이터러블 객체를 받기 때문에 짧게 줄인 코드도 이전 코드와 동일하게 동작