서론
대상독자
자바스크립트로 이차원 배열을 선언하고자 하는 개발자
오늘의 학습목표
자바스크립트에서 2차원 배열을 선언하는 방법을 알고, 이를 활용할 줄 안다.
본론
자바스크립트에서는 다른 언어와는 다르게, 이차원 배열이란 개념이 없습니다. 그러나 이차원 배열 자체를 활용할 수 없는 것은 아닙니다. 오늘은 자바스크립트에서 중첩 배열을 통해, 2차원 배열과 같은 형태를 선언하는 방법에 대해서 알아보도록 하겠습니다.
이차원 배열을 생성하는 방법
자바스크립트에서는 const arr = [][]
혹은 const arr[3][3]
와 같은 방법으로 선언해서 사용할 수 없습니다. 따라서 아래와 같은 방법을 따라야 하는데요.
배열에 초깃값을 할당하는 방법
가장 첫번째 방법은 아래와 같이 배열 안에 배열을 넣어 초기화해주는 방법입니다.
const arr = [[1,2], [2,3]]; // [[1,2], [2,3]]
배열을 인자로 전달하는 방법
제가 가장 자주 쓰는 방법인데요, array.push 메서드의 인자로 배열을 전달해줌으로써 이차원 배열을 만들 수 있습니다.
const arr = [];
arr.push([1,2]); // [[1,2]]
arr.push([2,3,4]); // [[1,2], [2,3]]
arr.push([3,4,5,6]); // [[1,2], [2,3,4], [3, 4, 5, 6]]
반복문으로 배열 안에 배열을 생성하는 방법
이 방법은 자바스크립트 완벽가이드에도 소개된 방법입니다. index 값을 지정해줌으로써 간단하게 2x2 행렬을 만들어보도록 하겠습니다.
// 이차원 배열의 행을 2로 지정
const ROW = 2;
const COLUMN = 2;
const arr = new Array(ROW); // [empty x 2]
// 이차원 배열의 열을 2로 지정
for (var i = 0; i < COLUMN; i++) {
arr[i] = new Array(2);
}
console.log(arr); // [[empty x 2], [empty x 2]]
처음 할당하는 Array에 length에는 행 값을, 반복문에서 할당하는 Array에는 열 값을 입력해주면 원하는 행과 열 크기 만큼의 이차원 배열을 생성할 수 있습니다.
ES6 문법으로 생성하는 방법
const arr = new Array(5).fill(0).map(() => new Array(4));
이 방법은 저도 처음 알게 된 방법인데요, 배열을 만들어주고 만든 배열의 원소에 fill 메소드를 통해 값을 채워 넣습니다. 간단하죠? 그런 뒤, map 함수를 실행해 각 원소의 자리에 길이가 4인 배열로 바꿔줍니다. fill 메소드를 쓰는 이유는 빈 배열의 경우 map 함수가 제대로 실행되지 않기 때문입니다.
이차원 배열에 접근하는 방법
arr[3][1]
접근은 위와 같은 방법으로 쉽게 할 수 있습니다.
마무리
이것으로 간단하게 2차원 배열을 선언하는 방법에 관해 알아보았습니다. 내용에 관해 궁금한 점이 있으면 답글 남겨주시면 감사하겠습니다. 부족한 글, 읽어주셔서 감사합니다!
'Language > JS(Node.js)' 카테고리의 다른 글
[memory] Javascript에서 Swap 하는 방법 (+ 얕은 복사와 깊은 복사) (0) | 2022.01.02 |
---|---|
[Javascript] 클로저란 무엇인가? (0) | 2021.12.30 |
[JavaScript 내장함수 다루기 ⑤] Array.Prototype.pop/push/unshift/shift (0) | 2021.12.23 |
프론트엔드 면접 질문 정리 ⑤ TypeScript 질문 (0) | 2021.05.27 |
[JavaScript 내장함수 다루기 ③] Array.Prototype.map, 배열의 원소를 1:1 매핑해보자. (0) | 2021.05.17 |
댓글