이번 편은 이전 편으로부터 이어집니다.
JavaScript의 Array
는 매우 많은 연산을 지원합니다. 하지만 지난 편에서 언급했듯 사용할 연산을 제한할 것입니다. 사용할 연산은 아래와 같습니다.
임의의 메모리 위치에 접근하기
임의의 메모리 위치의 데이터 가져오기
임의의 메모리 위치에 데이터 수정하기
할당된 메모리의 논리적 크기 가져오기
할당된 메모리의 논리적 크기 수정하기
위에 나열된 연산은 아래 코드에 대응하시면 됩니다.
const slots = []; // 할당된 메모리의 논리적 크기 = 0
slots.length += 5; // 할당된 메모리의 논리적 크기 가져오기 후 수정하기
slots[2]; // 2번 슬롯에 접근 후 가져오기
slots[2] = newValue; // 2번 슬롯에 접근 후 설정하기
배열은 메모리 크기 조정 가능 여부에 따라 정적 배열과 동적 배열로 나뉩니다. 정적 배열은 메모리 크기가 고정이고, 동적 배열은 그 반대입니다. 일반적으로 배열은 정적 배열을 이르지만 매끄러운 진행을 위해 동적 배열로 상정합니다.
연산의 종류
interface BasicArray<T> {
get(index: number): T;
set(index: number, element: T): void;
insert(index: number, element: T): void;
delete(index: number): void;
search(element: T): number;
}
구현해 볼 배열의 연산은 위와 같습니다.
get
은 접근 후 가져 오기를 의미합니다. 배열은 요소에 임의 접근하므로 두 연산을 한 번에 수행하는 것이 효율적입니다. 이에 대해서는 set
, insert
, delete
서 모두 동일합니다.
set
은 접근 후 수정을 의미합니다. 원하는 위치에 기존 요소를 새로운 요소로 덮어씁니다.
insert
는 접근 후 삽입을 의미합니다. 새로운 요소를 저장하는 것은 set
과 동일하나 덮어쓰지 않고 선택한 위치부터 한 칸씩 뒤로 밀어냅니다.
delete
는 접근 후 삭제를 의미합니다. 원하는 위치 뒤의 모든 요소를 한 칸씩 앞으로 당겨옵니다.
search
는 탐색을 의미합니다. 원하는 요소의 위치를 반환합니다.
내용은 다음 편에서 이어집니다. 읽어주셔서 감사합니다!
묻고 답하기
개인적인 판단에 의해 적절하다고 여겨지는 경우, 모두가 볼 수 있도록 이곳에 문답이 추가됩니다. 그렇지 않더라도 질문에 대한 답변은 별도로 이루어집니다.