Objects란 key-value쌍으로 모든것을 저장하는 무질서한 자료구조이다.
let instructor = {
firstName: "Princeton",
isInstructor: true,
favoriteNumbers: [1,2,3,4]
}
시간복잡도(Big O Notation):
함수 입력이 늘어남에 따라 해당 함수의 실행 시간이 얼마나 바뀌는지 설명하는 방법이다.
Objects의 시간복잡도:
●삽입 - O(1)
object가 얼마나 많은 속성을 가지고있는지는 중요하지 않다. '순서가 없다' object는 처음과 끝이 존재하지 않기 때문에 삽입하던 삭제하던 접근하던 아무런 영향이 없다.
instructor.gavoriteGame = "Metroid";
● 제거 - O(1)
delete instructor.gavoriteGame
● 접근 - O(1)
key를 주었을 때, 해당하는 value를 찾는 것.
● 탐색 - O(n)
key로 찾는것은 굉장히 빠르지만, value로 찾으려면 모든 item들을 체크해야하기 때문에 시간복잡도가 O(n)이다.
Objects 메소드의 시간복잡도:
● Object.keys - O(n)
모든 key에 한번씩 접근해 key를 배열에 추가해야한다.
● Object.values - O(n)
Object.keys와 같지만, value값을 배열에 추가한다.
● Object.entries - O(n)
Object.keys보다 기술적으로 더 많이 일하지만, 시간복잡도는 같다.
참고: https://medium.com/@diego.zegarra78/big-o-of-objects-e1e92d7358e7
'web > javascript' 카테고리의 다른 글
javascript 동작 원리 (0) | 2024.05.03 |
---|---|
javascript set(집합) (2) | 2023.10.14 |
youtube html에 삽입하기(youtube iframe_api) (0) | 2023.08.31 |
JS Promise.all & Promise.race (0) | 2023.02.21 |
JS async & await (0) | 2023.02.20 |