매번 사용할때마다 헷갈려서 정리해야지 다짐했던 바로 그 내용 🙃
컬렉션이란?
- 프로그래밍 언어가 제공하는 값을 담을 수 있는 컨테이너
- 종류 : 인덱스 기반 / 키 기반
각각 사용하는 함수 비교하기
- Array (인덱스 기반)
- 추가 : push, unshift, splice
- 삭제 : pop, shift, splice
- 값 찾기 : indexOf, includes, find, findIndex
- 순회 : forEach, for..of, map, filter
- 사이즈 확인 : length
- Object (키 기반)
- 추가 : 직접할당 ( ex. obj[key] = value )
- 삭제 : delete obj[key]
- 값 찾기 : obj[key]
- 순회 : for..in, Object.keys, Object.values, Object.entries
- 사이즈 확인 : Object.keys(obj).length
- Map (키 기반)
-> [키, 값]으로 이루어진 자료구조, Object과 유사함
- 추가 : set
- 삭제 : delete
- 값 찾기 : has
- 순회 : forEach, for..of, keys, values, entries
- 사이즈 확인 : size
- Set (키, 인덱스 모두 존재하지 않음)
- 추가 : add
- 삭제 : delete (전체삭제 : clear)
- 값 찾기 : has
- 순회 : forEach, for..of
- 사이즈 확인 : size
Map과 Object의 차이점은 무엇일까?
Map과 Object는 구조상으로 거의 비슷하다. 그러나 Map은 위 내용과 같이 다양한 함수를 제공하지만, Object는 오로지 문자열과 심볼만을 허용하기에 함수가 아닌 기본 연산만 사용이 가능하다는 것이 그 차이점이다!
단순 데이터 구조를 표현할 때는 Object, 복잡한 데이터 조작이 필요할 때는 Map을 사용하자!