자바스크립트 순차적으로 값이 증가하는 2차원 배열 만들기

버건디·2023년 6월 20일
0

프로그래머스에서 행렬 테두리 회전하기 문제를 풀다가 숫자가 순차적으로 증가하는 2차원 배열을 만들어야했다.

  let board = Array.from({length : N}, (_, index) => Array(M).fill(index+1));

처음엔 이렇게 만들었었는데,

[[1, 1, 1, 1, 1, 1],
 [2, 2, 2, 2, 2, 2],
 [3, 3, 3, 3, 3, 3],
 [4, 4, 4, 4, 4, 4],
 [5, 5, 5, 5, 5, 5],
 [6, 6, 6, 6, 6, 6]]

이런식의 배열이 만들어졌다.

Array.fill메서드는 fill 안의 값들로 Array(N)만큼의 1차원 배열을 만들어주는것이고,

Array.from 메서드는 length 만큼의 배열을 만드는데, 콜백함수가 실행된다.

index가 처음에는 1, 그후 2 이렇게 순차적으로 증가하기때문에 원하는 배열이 나오지 않았던것이다.

let board = Array.from({ length: N }, (_, i) =>
  Array.from({ length: M }, (_, j) => i * M + j + 1)
);

순차적인 값을 원할때는 Array.from 메서드를 이중으로 사용해서, 순차적으로 값을 늘려주어야한다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글