본문 바로가기
WEB front-end/Javascript

Map

by 겸둥이곰 2022. 6. 20.
반응형

내가 진행한 웹 프로젝트에서는 거의 쓰지 않는거 같은데... 

 

React와 React Native를 잠간 보니.. 그래도 꽤 쓰는거 같아.. 미리 개념을 정리 해 둔다.

 

Map 은 키가 있는 데이터를 저장 한다. 

 

* 주요 메서드와 프로퍼티

  • new Map() : 맵 생성
  • map.set(key, value) : key를 이용하여 value를 저장
  • map.get(key) : key에 해당하는 값을 반환. key가 존재하지 않으면 undefined를 반환
  • map.has(key) : key가 있으면 true, 없으면 false
  • map.delete(key) : key에 해당하는 값을 삭제
  • map.clear() : 맵의 모든 요소 제거 
  • map.size : 요소의 갯수 반환
let map = new Map();

map.set('1', 1);
map.set('2', 2);
map.set('3', 3);

console.log(map.get('3'));

* 맵은 객체를 키로 허용함

let lee = {name : "Lee"};
let leeMap = new Map();
leeMap.set(lee, 45);
console.log(leeMap.get(lee));

* 체이닝

 - map.set을 호출할 때마다 맵 자신이 반환됨

map.set('1', 1)
        .set('2', 2)
        .set('3', 3)

* 맵 반복

  • map.keys() : 각 요소의 키를 모은 반복 가능한 객체를 반환(iterable)
  • map.values() : 각 요소의 값을 모은 객체를 반환(iterable)
  • map.entries() : 요소의 [key, value]을 한 쌍으로 하는 iterable 객체를 반환. for ... of  반복문에 쓰임 
let fruitMap = new Map([
    ['apple', 1000]
    , ['banana', 5000]
    , ['melon', 10000]
]);

for (let fruit of fruitMap.keys()){
    console.log(fruit);
}

for (let price of fruitMap.values()){
    console.log(price);
}

for (let fruit of fruitMap){
    console.log(fruit);
}

* map.forEach

fruitMap.forEach( (value, key, map) => {
    console.log(`${key}: ${value}`); 
}

* 객체를 맵으로 변경 : Object.entries 사용

let obj = { name : "Lee", age : 45 };

let map = new Map(Object.entries(obj));

console.log(map.get("name"));
console.log(map.get("age"));

* 맵을 객체로 바꾸기 : Object.fromEntries 사용

let map = new Map();
map.set('apple', 1000);
map.set('banana', 2000);
map.set('melon', 3000);

let fruit = Object.fromEntries(map.entries());

console.log(fruit.banan);
반응형

'WEB front-end > Javascript' 카테고리의 다른 글

날짜 함수 활용...  (0) 2022.06.22
Set  (0) 2022.06.21
fetch  (0) 2022.06.03
예외처리...  (0) 2022.06.02
async/await  (0) 2022.05.27

댓글