배열(Array)은 여러 개의 값을 묶어 순차적으로 나열 및 저장하는 객체다. 데이터를 추가, 삭제, 참조, 순회 등의 다양한 작업을 수행할 때 용이하다. 배열은 대괄호([ ])를 사용하여 생성하고, 내부의 값은 요소라 하며 쉼표로 구분해 나열한다.
const arr =['가', '나', '다'];
console.log(arr); // ['가', '나', '다']
const arr = []; // 빈 배열의 생성도 가능하다.
console.log(arr); // [] (length:0)
const arr = [1, 2, 3];
console.log(arr); // [1, 2, 3]
const arr = new Array(4, 5, 6);
console.log(arr); // [4, 5, 6]
const arr = new Array(3);
console.log(arr); // [empty x 3] (length:3)
const arr = new Array(1);
console.log(arr); // [empty] (length:1)
console.log(arr[0]); // undefined (요소가 하나도 없는 배열)
인덱스(index)란 요소의 순서를 의미하며, 배열의 요소에 접근할 때 사용된다. 가장 첫 번째 요소의 인덱스는 0번째로 표시한다. 다음에 오는 요소는 1번째로 표시된다.
const arr =['가', '나', '다'];
console.log(arr[0]); // '가' (arr의 첫 번째 요소를 보여준다.)
console.log(arr[1]); // '나' (arr의 두 번째 요소를 보여준다.)
console.log(arr[2]); // '다' (arr의 세 번째 요소를 보여준다.)
console.log(arr[3]); // undefined (존재하지 않는 인덱스 값은 undefined로 출력한다)
배열의 길이(length) 프로퍼티를 이용하여 배열 내부에 들어있는 요소들의 개수를 확인 할 수 있다.
const arr = ['가', '나', '다'];
arr.length; // 3 (배열의 길이는 3)
const arr = ['lion', 'bear', 'sheep', 'monkey', 'horse'];
arr.length; // 5 (배열의 길이는 5)
arr[arr.length - 1]; // 'horse' (arr[5 - 1], 인덱스[4]에 해당하는 값은 horse이다.)
arr[arr.length - 3]; // 'sheep' (arr[5 - 3], 인덱스[2]에 해당하는 값은 sheep이다.)
arr[arr.length - 5]; // 'lion' (arr[5 - 5], 인덱스[0]에 해당하는 값은 lion이다.)
다차원 배열(Multi-Dimensional Array)은 ****배열 안에 다른 배열을 포함할 수 있다. 즉, 배열이 배열의 요소가 될 수 있다. 행렬을 저장하는 용도 등으로 사용된다.
const arr = [
[1, 2],
[3, 4],
[5, 6]
];
console.log(arr[0][0]); // 1 (인덱스 0의 배열안에서 인덱스 0의 요소는 1이다.)
console.log(arr[0][1]); // 2 (인덱스 0의 배열안에서 인덱스 1의 요소는 2이다.)
console.log(arr[1][1]); // 4 (인덱스 1의 배열안에서 인덱스 1의 요소는 4이다.)
console.log(arr[2][1]); // 6 (인덱스 2의 배열안에서 인덱스 1의 요소는 6이다.)
console.log(arr[2][2]); // undefined (존재하지 않는 인덱스 값은 undefined로 출력한다)
2차원 배열의 예시 살펴보기.
const arr = [
[
[1, 2],
[3, 4]
],
[
[5, 6],
[7, 8]
]
];
console.log(arr[0][0][0]); // 1 (2차원 배열 안에서의 인덱스 0, 1차원 배열 안에서 인덱스 0, 배열 안에서 인덱스 0의 요소는 1이다)
console.log(arr[0][0][1]); // 2 (2차원 배열 안에서의 인덱스 0, 1차원 배열 안에서 인덱스 0, 배열 안에서 인덱스 1의 요소는 2이다)
console.log(arr[0][1][1]); // 4 (2차원 배열 안에서의 인덱스 0, 1차원 배열 안에서 인덱스 1, 배열 안에서 인덱스 1의 요소는 4이다)
console.log(arr[1][0][0]); // 5 (2차원 배열 안에서의 인덱스 1, 1차원 배열 안에서 인덱스 0, 배열 안에서 인덱스 0의 요소는 5이다)
console.log(arr[1][1][1]); // 8 (2차원 배열 안에서의 인덱스 1, 1차원 배열 안에서 인덱스 1, 배열 안에서 인덱스 1의 요소는 8이다)
console.log(arr[2][0][1]); // Uncaught TypeError: Cannot read properties of undefined