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

JavaScript의 배열 내 배열 청크


숫자 배열을 첫 번째 인수로 사용하고 단일 숫자(예:num)를 두 번째 인수로 사용하는 JavaScript 함수를 작성해야 합니다. Num은 항상 배열의 길이보다 작거나 같습니다.

함수는 num개의 하위 배열을 포함해야 하는 새 배열을 준비해야 합니다. 배열의 길이가 num으로 정확히 나눌 수 있는 경우 모든 하위 배열에는 동일한 수의 배열이 포함되어야 합니다. 그렇지 않으면 마지막 하위 배열만 다른 수의 요소를 포함해야 합니다.

예를 들어 -

입력 배열과 숫자가 -

인 경우
const arr = [1, 2, 3, 4, 5, 6, 7, 8];
const num = 3;

따라서 위의 입력에 대한 출력은 다음과 같아야 합니다. -

const output = [
   [1, 2, 3],
   [4, 5, 6],
   [7, 8]
];

예시

이에 대한 코드는 -

const arr = [1, 2, 3, 4, 5, 6, 7, 8];
const num = 3;
const chunkArray = (arr = [], num = 1) => {
   const { length: l } = arr;
   const elPerArr = Math.ceil(l / num);
   const res = arr.reduce((acc, val, ind) => {
      const curr = Math.floor(ind / elPerArr);
      if(!acc[curr]){
         acc[curr] = [val];
      }else{
         acc[curr].push(val);
      }
      return acc;
   }, []);
   return res;
};
console.log(chunkArray(arr, num));

출력

콘솔의 출력은 -

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