[JavaScript] Map

Junseo Kim·2020년 7월 28일
0

Map

Object를 조금 개선한 자료구조이며 Key / Value 구조이다.
객체에 추가적인 정보를 넣을 때 유용하다.

생성

let myMap = new Map();

추가

myMap.set(1, 'apple'); // 1이 key값이고, 'apple'이 value값이다.

존재여부 확인

myMap.has(1); // 저장되어있는 key값 여부에 따라 true or false 값을 반환

값 가져오기

myMap.get(1); // key에 해당하는 값(value)을 가져옴

삭제

myMap.delete(1); // 저장되어 있는 key값에 해당하는 요소를 삭젬

순회

myMap.forEach(function(v) {
    console.log(v); // value 값이 출력된다.
});

weakmap

weakset과 마찬가지로 null값을 넣어주거나 하면 존재하지 않는 것 처럼 행동한다.

let weakMap = new WeakMap();
let func = function(){};

weakMap.set(func, 0); // 위에서 선언한 func을 key값으로, 실행 횟수를 value값으로 weakMap에 저장

let count = 0;
for(let i=0;i<10;i++) {
    count = weakMap.get(func); // 현재 실행 횟수를 가져와서
    count++; // 증가시킨 이후
    weakMap.set(func, count); // 다시 저장
}

console.log(weakMap.get(func)); // 10(10번 실행되었으므로)

func = null; // 가비지 컬렉션 대상으로 만들기

console.log(weakMap.get(func)); // undefined(WeakMap이기 때문에)

0개의 댓글