우리는 1차원 배열을 첫 번째 인수로, 숫자 n을 두 번째 인수로 취하는 함수를 작성해야 하며 부모 배열 내부에 n개의 하위 배열을 만들고(** 가능한 경우) 그에 따라 요소를 나누어야 합니다.
** 배열에 9개의 요소가 포함되어 있고 4개의 하위 배열을 만들도록 요청한 경우 각 하위 배열에서 2개의 요소를 나누면 5개의 하위 배열이 생성되고 각각 3개에서 3개가 생성되므로 이러한 경우 가장 가까운 가장 낮은 수준(이 경우 3)으로 대체해야 합니다. 우리의 요구 사항은 일부 특별한 경우의 마지막 요소를 제외하고 각 하위 배열에 동일한 수의 요소를 배포하는 것입니다.
예를 들어 -
// if the input array is: const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; // and the number is 2 //then the output should be: const output = [ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ];
이 함수의 코드를 작성해 봅시다 -
예시
const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; const splitArray = (arr, rows) => { const itemsPerRow = Math.ceil(arr.length / rows); return arr.reduce((acc, val, ind) => { const currentRow = Math.floor(ind / itemsPerRow); if(!acc[currentRow]){ acc[currentRow] = [val]; }else{ acc[currentRow].push(val); }; return acc; }, []); }; console.log(splitArray(arr, 2));
출력
콘솔의 출력은 -
[ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ]