Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 2차원 배열 재구성

<시간/>

문제

첫 번째 인수로 숫자의 2차원 배열 arr을, 을 나타내는 두 개의 숫자 r과 c를 취하는 JavaScript 함수를 작성해야 합니다. 숫자 및 각각 원하는 행렬의 번호입니다.

우리의 함수는 동일한 행 순회에서 지정된 행과 열로 새로운 2차원 배열을 형성하고 반환해야 합니다. 입력 배열에 있는 것과 같이 순서를 지정하십시오.

예를 들어, 함수에 대한 입력이 -

인 경우
const arr = [
   [6, 7],
   [8, 9]
];
const r = 1, c = 4;

그러면 출력은 다음과 같아야 합니다. -

const output = [[6, 7, 8, 9]];

출력 설명

행 순회 arr의 는 [6, 7, 8, 9]입니다. 새로운 모양의 행렬은 1 * 4 행렬입니다. 이전 목록을 사용하여 행별로 채웁니다.

예시

다음은 코드입니다 -

const arr = [
   [6, 7],
   [8, 9]
];
const r = 1, c = 4;
const reshapeArray = (arr, r, c) => {
   if (r * c !== arr.length * arr[0].length) {
      return arr
   }
   const res = []
   let row = []
   arr.forEach(items => items.forEach((num) => {
      row.push(num)
      if (row.length === c) {
         res.push(row)
         row = []
      }
   }))
   return res
};
console.log(reshapeArray(arr, r, c));

출력

다음은 콘솔 출력입니다 -

[[6, 7, 8, 9]]