1차원 배열을 n개씩 묶어서 정한 개수만큼 2차원 배열로 바꿔서 반환시켜 주는 함수를 제작해 보았습니다.
코드
function chunk(data = [], size = 1) {
const arr = [];
for (let i = 0; i < data.length; i += size) {
arr.push(data.slice(i, i + size));
}
return arr;
}
// chunk([1, 2, 3, 4], 2) -> [ [1,2], [3,4] ]
chunk 함수의 매게 변수로 자를 원본 배열과 개수(n)를 받아줍니다.
Array.slice 메서드를 이용해서 i번째부터 ( i + 나눌개수 ) 만큼의 배열 값을 가져와 새로운 배열에 담아줍니다.
해당 방식으로 데이터가 모두 Chunk 되면 새로운 배열을 반환해줍니다.
코드 예시
const item = [1, 2, 3, 4];
chunk(item, 2);
// [ [1,2], [3,4] ]
chunk(item, 1);
// [ [1], [2], [3], [4] ]