자바스크립트에는 자바나 c++ 처럼 다차원배열이 없다.
사실 내장된 것이 없을 뿐 만들었을 때 출력되는 값은 똑같다.
그렇지만 알고리즘 문제를 풀기위해서 다차원 배열을 구현해야한다면 훨씬 마이너스이긴하다....
아무튼 목표는 다음과 같다.
let row = 3;
let column = 3;
const array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
아래는 javascript에서 다차원 배열을 구현하기위한 코드이다.
matrix()
함수function matrix(rows, columns) {
const rtn = new Array[rows];
for (let i=0; i<rows; i++) {
rtn[i] = new Array(columns);
}
return rtn;
}
// 두번째 방법: Array.from
const arr1 = Array.from(Array(rows), () => new Array(columns));
ES6를 지원하는 환경에서만 사용 가능하지만, 짧은 코드니까 당연히 코딩테스트 볼 때는 이게 더 적절할 것 같다.
function matrix(rows, columns) {
const rtn = new Array(rows);
for (let i=0; i<rows; i++) {
rtn[i] = new Array(columns);
}
return rtn;
}
let rows = 3, columns = 3;
const array = matrix(rows, columns);
let num = 1;
for (let i=0; i<rows; i++) {
for (let j=0; j<columns; j++) {
array[i][j] = num++;
}
}
console.log(array); // [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]