let instructor = {
firstName : "kelly",
isInstructor : true,
favoriteNumbers : [1,2,3,4]
}
객체란 정렬되어 있지 않은 데이터 구조이며, 키와 값(벨류)로 구성되어 있습니다.
언제 objects를 사용할까요?
빠른 접근 입력 제거 -> O(1) 상수의 빅오를 따른다는 것이죠 (순서가 상관 없으니까요)
검색의 경우에는 O(n)의 성능을 가집니다. 검색이라는 것은 어떤 특정한 정보가 특정한 값에 있는 지 확인하는 것을 말합니다. 저장되 있는 모든 key를 확인한다고 생각하면 될 것 같습니다.
object Methods 의 빅오를 확인해보겠습니다.
hasOwnProperty는 왜 상수일까요? firstName이라는 키가 있고 그 키에 접근하는 것은 상수시간이 필요합니다. 그리고 같은 시간안에 존재여부를 확인할 수 있는 것이죠
let name = ["michael", "melissa", "Andrea"];
let values =[true, {}, [], 2, "awesome"];
언제 배열을 사용할까요?
접근이라는 것에 대한 오해 : 1000개의 엘리먼트가 있을 때 900번째 엘리먼트에 접근하는 것은 0~899를 거치고 접근하는 것이 아닙니다. 바로 900번째에 접근하는 것이죠.
입력과 삭제의 경우 조금 다릅니다. 어디에 입력(혹은 삭제)함에 따라 다른 결과가 발생할 수 있습니다 (빅오 관점)
작동원리를 생각하면서 빅오랑 비교해봅시다.