객체 (object)
- 객체 안에 어떤 값을 저장하는 것은 상수 시간(O(1))안에 가능
- 객체 안에 원하는 내용을 상수 시간안에 불러 올 수 있다.
- 객체는 정렬이 되어 있지 않다.
- 객체에 시작이 있고 끝이 있지 않다.
- 단지 key를 이용해서 값을 추가한다.
- 하지만 어떤 value를 찾고 싶다면 O(N)이 소요 된다.
- Object.keys - O(N) → 해당 객체의 key값이 배열에 담긴다. 객체 안에 아이템이 늘어날 수록 배열에 추가해야하는 시간이 늘어난다.
- Object.values - O(N) → 같음
- Object.entries - O(N) → 객체안의 Key, value를 각각의 배열에 넣어 배열을 반환
- hasOwnProperty - O(1) → key로 바로 접근하므로 상수 시간.
<aside>
♻️ 객체는 뭐든 거의 빠르다.
</aside>
배열 (a)rray
- 정렬 되어 있는 데이터
- 하지만 정렬되어 있는 데이터 구조가 배열만 있는 것은 아니다. (링크드 리스트)
- 배열을 사용하는 것은 가끔 성능을 희생해야 할 수 있다. when 입력과 제거
- 배열 접근 O(1) → 탐색이 아니라 인덱스로 접근을 말하는것 array[0], 요소가 100000개 중 9000번째 숫자 접근하려면 array[9000] === 지름길
- 배열 탐색 O(N)