본문 바로가기
개발/JavaScript

[JS] Map과 Set

by WaDDak 2024. 8. 13.

Map은 key-value를 쌍으로 저장하는 객체입니다.

Map은 한쌍의 key 와 value를 저장하며, 객체와 달리 키로 사용할 수 있는 모든 유형을 사용할 수 있습니다.

(객체(Object)에서는 key값이 문자열로 저장된다.)

 

Map은 키가 정렬된 순서로 저장되기 때문에, 추가한 순서대로 반복할 필요가 없습니다. Map을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

<aside>
💡 **[맵에는 다음과 같은 주요 메서드와 프로퍼티가 있습니다]**

- `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` – 요소의 개수를 반환합니다.

 

 

<Map의 반복>

Map에서는 key(), values(), entries() 메소드를 사용하여 키, 값 및 키-값 쌍을 반복할 수 있습니다.

 

key() : 키

values()  :  값

entries()  : 키-값

 

Map은C++과 마찬가지로 반복자를 순회하는 것으로 for문을 돌릴 수 있고 이를 for of 문이 도와주게 된다.

 

- Set

 set은 고유한 값을 저장하는 자료 구조입니다. set은 값만 저장하며, 키를 저장하지 않습니다.

set은 값이 중복되지 않는 유일한 요소로만 구성됩니다. set을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

 

/// C++에서 Set을 배웠던 기억으로는 set은 map에서 value를 저장하지 않아도 되는 key만이 있는 map이다 라는 식으로 배웠었는데 Js에서는 key는 없고 값만이 있다고 해서 살짝 혼돈이 있었지만 결국 의미하는 바는 같았다.

 

<Set의 반복>

set에서는 values()메소드를 사용하여 값을 반복할 수 있다.

Map에서 하던거에서 values()만을 사용 가능하다고 생각하면 된다.

'개발 > JavaScript' 카테고리의 다른 글

[JS] 가비지 콜렉터(Garbage Collecto)  (0) 2024.08.20
[JS] 데이터 타입의 종류  (0) 2024.08.20
[JS] 일급 객체로서의 함수  (0) 2024.08.13
[JS] 객체 메소드  (0) 2024.08.12
[JS] C++과 다른 기본 문법들  (0) 2024.08.12