[JavaScript] 이차원 배열과 이중 for문

김서진·2024년 1월 25일

프로그래머스 문제를 풀면서 알게된 이차원 배열과 이중 for문에 대한 정리.


이중 for문으로 구구단을 만들어 보자

for(let i=2; i<=9; i++){  
	for(let k=1; k<=9; k++){ // i=2일때 k for문이 전부 실행되고 난 후에 i for문으로 돌아가 다시 실행된다.
    	let sum = i * k;
        document.write(i + '*' + k + '=' + 'sum') // 2*1=2, 2*2=4, 2*3=6...
    }
}

자바스크립트에서는 다른 언어와 다르게 이차원 배열이라는 개념이 없고 const arr = [ ][ ]같은 방식으로 선언해서 사용할 수 없기 때문에 다음과 같은 방식으로 사용한다.

배열에 초깃값 할당

const arr = [[1,2], [2,3], [3,4]]

ES6문법으로 생성

const rows = 5;
const cols = 5;

const arr = Array.from({ length: rows }, () => Array(cols).fill(0));

console.log(arr);

-----------------------------------------------------------------
const arr = new Array(5).fill(0).map(() => new Array(5).fill(0));

console.log(arr);

// 둘의 결과값
[
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0]
]

이중 for문으로도 가능하다

let arr = []
for(let i=0; i<5; i++){
	const a = [];
    for(let k=0; k<5; k++){
    	a.push(0);
    }
    arr.push(a);
}

console.log(arr);

//결과값
[
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0]
]

이차원 배열에 접근하는 방법

arr[2][2] 같이 간단하게 접근할 수 있다.

0개의 댓글