💡 배열은 언제 사용할 수 있나요?
- 인덱스를 기반으로 한 자료구조에 필요하다면 배열 사용 가능
- 순서가 중요한 데이터라면 인덱스를 기반으로 하는 배열로 필요한 데이터를 저장 가능
- 배열은 각각 정해진 인덱스에 어떤 아이템을 담는지 상관이 없기 때문에, 중복된 아이템이 들어갈 수 있다.
❓ 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 함수를 사용해서 찾을 수 있다.