[JavaScript] Map 과 Set 알아보기

Wijeong Nam·2022년 6월 19일
post-thumbnail

💡 배열은 언제 사용할 수 있나요?

  • 인덱스를 기반으로 한 자료구조에 필요하다면 배열 사용 가능
  • 순서가 중요한 데이터라면 인덱스를 기반으로 하는 배열로 필요한 데이터를 저장 가능
  • 배열은 각각 정해진 인덱스에 어떤 아이템을 담는지 상관이 없기 때문에, 중복된 아이템이 들어갈 수 있다.

❓ Map이란?

  • Map 은 각각 키를 가지며, 그에 맞는 값을 가지고 있다!
  • 키(key)와 값(values)으로 이루어진 자료구조
  • 여기서 고유한 키! 를 가지고 있어야 함
  • 키만 다르다면 그의 값들은 중복이 되어도 상관없고 , 순서도 상관없다!

❗️Map의 기능

  • 사이즈 확인 : map.size()
  • 값이 존재하는지 확인(이 때, key로 확인해야함!) : map.has()
  • 순회 가능 : map.forEach()
  • key, values, entries 확인할 수 있다
  • 찾기 : map.get(키), 해당 key 없으면 undefined 반환
  • 추가 : map.set(키, 값), 덮어 씌우기로 수정 가능.
  • 삭제 : map.delete(키)
  • 전부 삭제 : map.clear()

❓ Set이란?

  • Set에 배열을 전달해서 만들 수 있다
  • Set은 데이터의 집합체이다
  • 인덱스도 없고 순서도 없다
  • 단 하나의 집합체라고 할 수 있으며, 중복은 불가능 하다

❗️Set의 기능

  • 사이즈 확인 : set.size()
  • set 안에 해당 아이템이 존재하는지 확인 : set.has()
  • forEach 로 순회 : set.forEach()
  • 기존 set에 추가 : set.add()
    • 단!! 이미 존재하는 아이템이라면 중복이 불가하기 때문에 추가하면 무시된다!
  • 삭제 : set.delete()
  • 전부 삭제 : set.clear()

✨ Map과 Object 의 차이점!

출처: MDN(https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Map)

  • Map의 형태를 보면 key와 value로 이루어져 있어서 우리가 기존에 알고있는 Object와 비슷해 보인다.
  • 하지만 Map과 Object는 key에 접근하는 방식이 다르다.
  • Object는 key를 찾을 때 object[’ ’] 이런식으로 동적인 접근이 가능한 반면, Map은 key에 바로 접근할 수가 없다.
  • 따라서 Map에서 특정 key를 찾으려면 위에서 본 get 함수를 사용해서 찾을 수 있다.
profile
기초부터 탄탄한 개발자가 되자!💪

0개의 댓글