자바스크립트 맵과 셋
자바스크립트는 다양한 데이터 구조를 제공하여 프로그래밍을 더 효율적이고 유지보수하기 쉽게 만듭니다. 그 중에서도 맵(Map)과 셋(Set)은 매우 유용한 데이터 구조입니다. 이들은 어떻게 사용되는지 알아보고, 어떻게 제공되는지 살펴보겠습니다.
맵(Map)
맵은 키와 값의 쌍으로 이루어진 데이터 구조입니다. 자바스크립트에서는 객체와 유사한 기능을 제공하지만, 맵은 다음과 같은 몇 가지 차이점이 있습니다:
- 키의 유형: 객체에서는 문자열과 심볼만 키로 사용할 수 있지만, 맵에서는 어떤 유형의 값이나 객체도 키로 사용할 수 있습니다.
- 순서 보장: 맵은 원소들을 삽입한 순서대로 유지합니다.
- 이터레이션: 맵은
forEach
나for...of
루프를 통해 이터레이션할 수 있어 다루기 쉽습니다.
아래는 맵을 생성하고 조작하는 예제 코드입니다:
// 맵 생성
const map = new Map();
// 값 추가
map.set('key1', 'value1');
map.set('key2', 'value2');
map.set('key3', 'value3');
// 값 가져오기
console.log(map.get('key2')); // 출력: value2
// 맵 크기 확인
console.log(map.size); // 출력: 3
// 맵 순회
map.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// 키 유무 확인
console.log(map.has('key1')); // 출력: true
// 값 삭제
map.delete('key3');
// 맵 비우기
map.clear();
셋(Set)
셋은 중복되지 않는 값들의 집합을 나타내는 데이터 구조입니다. 셋은 다음과 같은 특징을 가지고 있습니다:
- 중복 제거: 셋에는 중복된 값을 저장할 수 없습니다.
- 순서 보장: 셋은 원소들을 삽입한 순서대로 유지합니다.
- 이터레이션: 셋은
forEach
나for...of
루프를 통해 이터레이션할 수 있어 다루기 쉽습니다.
아래는 셋을 생성하고 조작하는 예제 코드입니다:
// 셋 생성
const set = new Set();
// 값 추가
set.add('value1');
set.add('value2');
set.add('value3');
set.add('value2'); // 중복된 값은 무시됨
// 셋 크기 확인
console.log(set.size); // 출력: 3
// 셋 순회
set.forEach(value => {
console.log(value);
});
// 값 삭제
set.delete('value3');
// 셋 비우기
set.clear();
맵과 셋의 활용
맵과 셋은 다양한 상황에서 유용하게 활용될 수 있습니다. 예를 들어, 맵은 중복을 제거하고 고유한 값만 유지할 때 사용될 수 있습니다. 또한, 맵은 객체의 프로퍼티를 순회하거나 객체를 효과적으로 검색하는 데에도 사용될 수 있습니다.
셋은 중복 제거나 고유한 값을 추적하는 데 사용될 수 있습니다. 예를 들어, 셋은 특정 값의 존재 여부를 빠르게 확인하거나, 어떤 값들이 중복되지 않게 유지되어야 할 때 사용될 수 있습니다.
맵과 셋은 자바스크립트에서 제공되는 강력한 데이터 구조로, 데이터 조작과 관리에 유용합니다. 자신의 프로젝트에서 이들을 적절히 활용해보세요!