💻 JavaScript/기초 문법

JS 문법 종합: Map과 Set

seheej 2024. 7. 26. 15:42

Map

  • Key, Value을 한 쌍으로 저장
  • Map은 Key가 정렬된 순서로 저장되기 때문
  • 기능: 검색, 삭제, 제거, 여부 확인
  • Key에 어떤 유형의 데이터 타입이 다 들어올 수 있다.
const myMap = new Map();

// Map 값을 추가할 때 항상 set을 사용해야 함
myMap.set('key', 'value');

// get을 통해 검색
myMap.get('key');
  • 대량의 데이터를 처리하기 위함이기 때문에 반복적인 부분이 중요함
  • method: keys, values, entries
// Map 생성
const myMap = new Map();

// myMap에 set으로 데이터 저장
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);

console.log(myMap.keys());	// [Map Iterator] { 'one', 'two', 'three' }

// 기본 문법
// for (const 변수명 of myMap.keys()) {
//     console.log(변수명);
// }

for (const key of myMap.keys()) {
    console.log(key);
}

for (const value of myMap.values()) {
    console.log(value);
}

// 배열로로 묶어서 전체를 Iterator로 감싸서 출력함
console.log(myMap.entries());   // [Map Entries] { [ 'one', 1 ], [ 'two', 2 ], [ 'three', 3 ] }

for (const entry of myMap.entries()) {
    console.log(`${entry[0]}: ${entry[1]}`);
}
  • Map의 사이즈(길이)를 확인하는 방법
console.log(myMap.size); // 3 출력

 

  • Map에 특정 key가 존재하는지 여부 확인 (true or false)
console.log(myMap.has('two')); // true 출력

 

Set

  • 고유한 값을 저장하는 자료 구조
  • 값(value)만 저장한다.
  • key를 저장하지는 않는다.
  • 값이 중복되지 않는 유일한 요소로만 구성된다.
  • 값 추가, 검색, 값 삭제, 모든 값 제거, 존재 여부 확인
// Set 생성
const mySet = new Set();

// 추가
mySet.add("value1");
mySet.add("value2");
mySet.add("value2");    // 중복된 값은 추가 되지 않음
mySet.add("value3");
mySet.add("value5");
mySet.add("value8");

// Set의 사이즈(길이) 확인
console.log(mySet.size);    // 6이 아닌 5

// Set에 특정 값이 존재하는지 여부 확인
console.log(mySet.has("value1"));   // true
console.log(mySet.has("value2"));   // ture
console.log(mySet.has("value3"));   // false

// Iterator 반복
for (const value of mySet.values()) {
    console.log(value);
}