[Javascript] Map과 Set

SNXWXH·2025년 3월 14일

Javascript

목록 보기
8/13
post-thumbnail

Map

  • 키-값 쌍을 저장하는 데이터 구조
  • 객체와 달리 키의 타입에 제한이 없음
  • 삽입 순서가 유지됨
  • 중복된 키를 허용하지 않음
  • 이터러블 객체이므로 for...of 문이나 스프레드 연산자를 사용할 수 있음

객체(Object)와의 차이점

구분MapObject
키의 타입어떤 데이터 타입도 가능문자열 또는 심볼만 가능
삽입 순서유지됨보장되지 않음
반복 가능 여부for...of 사용 가능for...in으로만 가능 (키 순서 불명확)
성능대량의 데이터 처리에 더 최적화일반적인 데이터 저장용
기본 프로토타입 상속없음Object.prototype 상속됨

주요 메서드

메서드설명
set(key, value)새로운 키-값 쌍 추가
get(key)키에 해당하는 값 반환
has(key)해당 키의 존재 여부 확인
delete(key)특정 키-값 쌍 삭제
clear()모든 요소 제거
size요소 개수 반환
const map = new Map();

// 키로 다양한 타입 사용 가능
map.set('name', 'Alice');
map.set(1, 'Number');
map.set(true, 'Boolean');

// 값 가져오기
console.log(map.get('name')); // Alice

// 키 존재 여부 확인
console.log(map.has(1)); // true

// 삭제
map.delete('name');

// 전체 삭제
map.clear();

Set

  • 유일한 값만 저장하는 데이터 구조
  • 중복된 값을 자동으로 제거됨
  • 삽입 순서 유지됨
  • 이터러블 객체이므로 for...of 문이나 스프레드 연산자 사용 가능

주요 메서드

메서드설명
add(value)값 추가
has(value)값 존재 여부 확인
delete(value)특정 값 삭제
clear()모든 요소 제거
size요소 개수 반환
const set = new Set();

// 중복된 값은 자동 제거
set.add(1);
set.add(2);
set.add(1); // 무시됨

console.log(set.size); // 2

// 값 삭제
set.delete(2);

// 전체 삭제
set.clear();

Map vs. Set

구분MapSet
저장 방식키-값 쌍 저장값만 저장 (중복 제거)
키의 중복허용되지 않음값의 중복 자동 제거
순서 유지 여부유지됨유지됨
반복 가능 여부for...of 및 스프레드 연산자 사용 가능for...of 및 스프레드 연산자 사용 가능
  • Map: 객체보다 더 다양한 타입의 키를 사용할 때, 데이터의 삽입 순서를 유지하면서 관리하고 싶을 때
  • Set: 중복되지 않은 고유한 데이터만 관리하고 싶을 때, 배열 중복 제거 및 필터링
profile
세상은 호락호락하지 않다. 괜찮다. 나도 호락호락하지 않으니까.

0개의 댓글