Objects
- Unordered, key value pairs
- Unordered(순서)가 없어서 key value를 지울때, 추가할 때, 변경할 때 performance는 O(1)이다.
- 키의 값을 찾거나 키 자체를 찾을때 (Object.keys(), Object.values())는 O(N)이다.
- Object.hasOwnProperty()는 O(1)인데 왜?
- Object.hasOwnProperty() 메서드는 맞는 키값을 찾을때까지 array처럼 모든 키들을 iterate하는것처럼 보인다. 하지만, Object는 모두 hashing 되어있어서 순회하지않고 direct key를 찾을 수 있다!
Arrays
- Ordered Lists, 순서가 필요없는 data structure라면 성능을 위해서 object를 사용하는게 좋다
- accessing O(1), searching O(N), insertion(it depends… 어디에 추가하냐에 따라), removal(it depends… 어디 element를 삭제하냐에 따라)
- push: O(1), pop: O(1), shift & unshift: O(N), foreach, concat, slice, splice … : O(N)
- sort : O(NlogN)
Time complexity에서 가장 중요한것: input이 늘어남에따라 어떻게 복잡도가 변하는지를 생각해야 한다.