-
배열Data Structure & Algorithm 2022. 3. 20. 23:45
정의
연관된 데이터를 연속적인 형태로 저장하는 자료구조
특징
- 배열에 포함된 원소는 순서대로 번호(index)가 붙음
- 원하는 원소의 index를 알고 있다면 배열 내의 원소를 찾을 수 있음
- 배열 내 원소를 삭제하면 해당 index에 빈자리가 생김
- 고정된 크기를 가지며 일반적으로는 동적으로 크기를 변경할 수 없음
=> JS 등의 스크립트 언어에서는 배열의 크기가 가변적인 경우가 많음 - 배열에 원소 추가/삭제 시 O(n) 이 소요됨
=> 추가/삭제가 반복되는 로직에는 배열 사용이 권장되지 않음 - 탐색이 많은 경우에 유리
Javascript 에서 배열 사용 시 유의할 점
- 배열 내 원소의 추가/삭제 시 사용되는 splice 의 경우 O(n) 의 시간복잡도를 가짐
- 배열의 크기가 가변적
- 자바스크립트의 배열은 기본적으로 객체 타입
=> index가 number 가 아닌 경우 key-value 로 처리 - 배열과 객체가 다른 점은 배열의 경우 내부적으로 length 가 관리됨
=> index가 number 가 아닌 경우 length 에 영향을 미치지 않음
Array.from 메서드로 range 함수 만들기
const range = (length) => Array.from(new Array(length), (_, index) => index + 1); const toTen = range(10); console.log(toTen); // (10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Length 직접 조작하기
const toTen = range(10); toTen.length = 5; console.log(toTen); // [1, 2, 3, 4, 5] toTen.lengh = 10; console.log(toTen); // [1, 2, 3, 4, 5, lengh: 10]