문제
첫 번째 인수로 숫자의 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]]