Language/JavaScript

[JavaScript] Set과 Map

IT수정 2024. 9. 16. 19:52

Set과 Map

실제 데이터를 다룰 때 배열과 객체만으로는 한계가 있던 복잡한 데이터를 다루는 경우에 활용할 수 있도록 ES6 이후 도입된 새로운 데이터 구조이다.

 

Set

셋은 데이터 집합으로, 중복에 대한 제한이 없는 배열과 달리 중복을 허용하지 않는다. 즉, 다루려는 데이터가 중복을 허용하지 않는 경우, 배열을 사용하면 데이터에 중복이 있는지를 일일이 체크하고, 제거하는 처리가 필요하지만, 셋을 사용하면 아예 중복된 값은 들어가지 않기 때문에 이와 같은 처리가 필요하지 않다.

const set = new Set();

set.add(1);
set.add(2);
set.add(1);

console.log(set); // {1, 2}

 

셋은 위 코드 예제와 같이 new Set()을 사용해 생성할 수 있으며, add()라는 함수를 사용해 새로운 값을 추가할 수 있다. 셋은 중복을 허용하지 않기 때문에 마지막에 추가한 1은 추가되지 않는다.

 

Map

맵은 객체와 같이 키와 값을 연결하는 방식의 데이터 집합으로, 객체와 동일한 콘셉트로 디자인되었지만, 다음과 같은 차이점을 가진다.

객체
키값으로 문자, 심벌 타입만 허용 키값으로 모든 데이터 타입 허용
정렬에 관여하지 않음 삽입된 순서대로 정렬
순회를 위해서 키값을 통해 배열을 얻어 배열을 순회 map.size로 크기를 바로 알 수 있음
크기를 알기 위해서는 키값 사용 등 직접 판별해야 함 맵 자체로 순회할 수 있음
const map = new Map();

map.set('Hello', 'World!');
map.set(123, 456);

console.log(map); // {'Hello' => 'World!', 123 => 456}

 

맵은 위 코드 예제와 같이 new Map()을 사용해 생성할 수 있으며, set()이라는 함수를 통해 새로운 프로퍼티를 추가할 수 있다. 이때 키값은 모든 데이터 타입이 허용되므로, 예제와 같이 문자열과 숫자를 키로 사용할 수 있다.

 

 

'Language > JavaScript' 카테고리의 다른 글

[JavaScript] 조건문  (1) 2024.09.16
[JavaScript] 연산자  (1) 2024.09.16
[JavaScript] 참조 데이터 타입  (0) 2024.09.16
[JavaScript] 원시 데이터 타입  (0) 2024.09.16
[JavaScript] 변수와 상수  (0) 2024.09.16