Chúng ta cần viết một hàm JavaScript nhận vào một mảng các số làm đối số thứ nhất và một số đơn lẻ, gọi là num, làm đối số thứ hai. Num sẽ luôn nhỏ hơn hoặc bằng độ dài mảng. Hàm nên chuẩn bị một mảng mới phải chứa num mảng con. Tất cả các mảng con nên chứa số lượng phần tử bằng nhau nếu độ dài mảng chia hết cho num, ngược lại chỉ mảng con cuối cùng chứa số lượng phần tử khác nhau.
Ví dụ:
Nếu mảng đầu vào và số là:
const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const num = 3;
Do đó, đầu ra cho đầu vào trên nên trông như sau:
const output = [ [1, 2, 3], [4, 5, 6], [7, 8] ];
Ví dụ
Code cho việc này sẽ là:
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));Kết quả
Kết quả hiển thị trong console sẽ là:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ]