Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 다차원 배열 완벽 가이드: 개념부터 활용까지

다차원 배열(multidimensional array)은 기본적으로 배열 안에 또 다른 배열을 넣고 싶을 때 사용합니다. 예를 들어, 평일 동안 6시간 간격으로 측정한 온도를 저장해야 한다고 가정해 보겠습니다. 이 경우 다음과 같이 요일별로 변수를 만들어 저장할 수 있습니다.

let monday = [35, 28, 29, 31];
let tuesday = [33, 24, 25, 29];
//...

하지만 요일이 많아질수록 변수를 일일이 선언하는 방식은 비효율적입니다. 이럴 때 다차원 배열을 사용하면 데이터를 훨씬 깔끔하게 관리할 수 있습니다. 다차원 배열이란 배열을 요소로 가지는 배열을 의미하며, 앞선 예제를 다차원 배열로 바꾸면 각 행(row)은 하루를, 행 안의 각 항목은 해당 시간대의 온도를 나타내게 됩니다.

let temps = [
    [35, 28, 29, 31],
    [33, 24, 25, 29]
];

다차원 배열 요소에 접근하기

다차원 배열의 요소에는 배열 접근을 체인처럼 연결해서 조회할 수 있습니다. 예를 들어 두 번째 행의 세 번째 요소가 필요하다면 temps[1][2]로 간단히 가져올 수 있습니다. 주의할 점은 인덱스 순서가 먼저 행(row), 그다음 열(column)이라는 것입니다.

중첩 for 반복문으로 순회하기

다차원 배열은 여러 개의 for 반복문을 중첩하여 전체 요소를 순회할 수 있습니다.

let temps = [
    [35, 28, 29, 31],
    [33, 24, 25, 29]
];

for (let i = 0; i < 2; i++) {
    console.log("Row #" + i);
    for (let j = 0; j < 4; j++) {
        console.log(i, j, temps[i][j]);
    }
}

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Row #0
0 0 35
0 1 28
0 2 29
0 3 31
Row #1
1 0 33
1 1 24
1 2 25
1 3 29

2차원을 넘어선 다차원 배열

다차원 배열은 2차원에 국한되지 않고 3차원 이상으로도 확장할 수 있습니다. 대부분의 경우 2차원 배열만으로 충분하지만, 3D 그래픽 연산, 물리 시뮬레이션 계산, 게임의 입체적인 맵 데이터 처리 등에서는 3차원 배열이 유용하게 활용됩니다. 실무에서도 행렬(matrix) 연산, 이미지 픽셀 데이터, 바둑판이나 틱택토 같은 격자형 게임 보드 구현 등 다양한 상황에서 다차원 배열이 폭넓게 사용됩니다.