[JS] 컬렉션(Collections) 종류에 따른 연산 구분하기

고쥐·2024년 8월 20일

매번 사용할때마다 헷갈려서 정리해야지 다짐했던 바로 그 내용 🙃

컬렉션이란?

  • 프로그래밍 언어가 제공하는 값을 담을 수 있는 컨테이너
  • 종류 : 인덱스 기반 / 키 기반

각각 사용하는 함수 비교하기

  • 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을 사용하자!

profile
미래의 고쥐를 위한 아하모먼트 기록 🥔

0개의 댓글