삽입(Insertion) ⇒ O(1)
삭제(Removal) ⇒ O(1)
검색(Searching) ⇒ O(N)
접근(Access) ⇒ O(1)
객체의 키 목록을 배열로 리턴
const obj = {
name: 'melon',
weight: 4350,
price: 16500,
isFresh: true
}
Object.keys(obj) // ['name', 'weight', 'price', 'isFresh']
Boolean 값으로 반환
let obj = {
name: "kim",
age: 30,
height: 172,
};
console.log(Object.keys(obj)); //[ 'name', 'age', 'height' ]
console.log(Object.values(obj)); //[ 'kim', 30, 172 ]
console.log(Object.entries(obj)); //[ [ 'name', 'kim' ], [ 'age', 30 ],
//[ 'height', 172 ] ]
console.log(obj.hasOwnProperty("height")); //true
삽입 - 맨 앞일 때: O(N), 맨 뒤일 때: O(1)
삭제 - 맨 앞일 때: O(N), 맨 뒤일 때: O(1)
접근 - O(1)
탐색 - O(N)
push - O(1)
pop - O(1)
shift - O(N)
unshift -O(N) =>push와 pop이 shift와 unshift 작업보다 빠름(비어 있는 배열일때 제외)
concat - O(N + M) = O(N) : 여러 배열을 합쳐주는데 결합할 배열이 커질수록 끝에 붙일 배열의 크기만큼 시간도 그만큼 늘어날것
slice - O(N) : 배열의 전체 혹은 일부를 복사함, 얼마나 복사할지에 따라 다름 = 배열의 길이에 따라 다름
splice -O(N) : 인수가 2개일 때에는 삭제, 3개 이상일 때에는 추가
sort - O(N * logN)
고차함수(forEach/map/filter/reduce/etc. - O(N)
📍 배열의 기본적인 연산, 메소드들은 보통 O(N)
접근, pop, push은 인덱스를 사용해서 접근하는 것과 똑같고 상수 시간걸림 빠름