[2주차] Javascript 문법 종합반 2주차 강의 내용 정리 (2)

voyager 999·2024년 1월 2일

JavaScript

목록 보기
6/19

Map & Set

JavaScript가 다양하고 복잡한 프로그램을 만드는 데 유용함에도 현실 세계를 반영하는 데에 부족한 부분을 보완하기 위해서 Map, Set과 같은 추가적인 자료구조(데이터의 형태)가 등장

  • Map, Set의 목적: 데이터의 구성, 검색, 사용을 기존의 객체나 배열보다 효율적으로 처리

Map

객체처럼 key-value pair를 저장. key에 어떤 데이터타입도 다 들어올 수 있으며, key는 정렬된 순서로 저장된다. 검색, 삭제, 제거, 여부 확인 등의 기능이 있다.

  • 맵 만들기: new Map()
  • key를 이용해 value 저장: map.set(key, value)
  • key에 해당하는 value 반환: map.get(key)
const myMap = new Map();
myMap.set('key', 'value'); // 저장
...
...
myMap.get('key') // 검색
  • keys(), values(), entries() 메소드를 사용하여 키, 값, 키-값 쌍을 반복할 수 있다.
const myMap = new Map();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.set("three", 3);

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

for (const key of myMap.keys()) {
   console.log(key);
} // one two three

console.log(myMap.values()); // [Map Iterator] {'1', '2', '3'}

for (const value of myMap.values()) {
  console.log(value);
} // 1 2 3

console.log(myMap.entries());
// [Map Entries] { ['one',1], ['two', 2], ['three', 3] }

for (const entry of myMap.entries()) {
   console.log(entry);
} // ['one', 1] ['two', 2] ['three' 3]
  • map의 사이즈(길이): myMap.size
  • key 기반 검색: myMap.has(key)
  • key에 해당하는 value를 삭제: myMap.delete(key)
  • 맵 안의 모든 요소 제거: myMap.clear()

Set

고유한 값을 저장하는 자료구조이다. Map과 다르게 key는 저장하지 않고, value만 저장한다. 값이 중복되지 않는 유일한 요소로만 구성된다. 값을 추가, 검색, 모든 값 제거, 존재 여부 확인 등의 기능이 있다.

const mySet = new Set();
mySet.add("value1");
mySet.add("value2");
mySet.add("value2");

console.log(mySet.size); // value2가 중복된 값이므로 2 출력
console.log(mySet.has("value3")); // false

for (const value of mySet.values()) {
   console.log(value);
}; // value1 value2

0개의 댓글