Bleeding edge

Map의 저장방법 두가지 본문

Javascript

Map의 저장방법 두가지

codevil 2022. 6. 27. 14:15

코딩테스트 문제를 풀다보면, new Map()이라는 생성자를 많이 사용하게된다. 문제를 풀다보면 이게 됬다 저게 안됬다 하는 경우가 상당히 많았었는데 오늘 문제를 풀면서 알게된 것이 있었다. map에는 저장하는 방법이 두가지가 있다.

1. set을 이용한 저장 방법

map.set(1,1)

2. map의 keyd에 저장하는 방법

map[2] = 2

 

위의 두가지 방법은 console로 표시를한다면,

Map(1) { 1 => 1, '2': 2 }

이렇게 나온다. map으로써 저장된 1과, object로 저장된 2.

1로 저장한 방법같은 경우에는, 숫자로 저장되었고 2로 저장한방법은 문자열로 저장이 되었다. 두 저장방법에 따라서 또 사용할 수 있는 것도 다르다. 만일 1번방법으로 저장한 경우에는 Array.from을 이용하여 형태를 바꿀 수 있지만, 2번과 같은 경우에는 불가능하다. 만일, for 문의 key를 사용하려면, 2번방법을 사용해야 사용이 가능하다.

function test() {
    const hash = new Map()
    hash[2] = 2
    hash.set(1, 1)
    for (let key in hash) {
        console.log(key)
    }
    for (const [key, value] of Object.entries(hash)) {
        console.log(key, value);
    }
    console.log(hash)
    console.log(Array.from(hash))
}
console.log(test())

이 예시의 console.log을 다루다보면, 이해가 쉬울 것이라고 생각한다.

  map(key, value) map[key] = value
Array.from 가능 불가
for 불가능 가능

요렇게 정리하면 되겠다.

'Javascript' 카테고리의 다른 글

클린코드 작성하기  (0) 2022.07.10
fetch로 카테고리별로 분류하기  (0) 2022.07.09
map.get(key) 대신, map.get(value) 만들기  (0) 2022.06.10
TypeError: xxxxxxxxxxx is not iterable  (0) 2022.05.20
Git Convention - 정리  (0) 2022.05.08