Viết hàm nhận mảng 1 chiều và số n, chia thành n mảng con (nếu có thể) và phân phối phần tử tương ứng.
Lưu ý: nếu 9 phần tử chia 4 mảng con → 2 phần tử/mảng tạo 5 mảng, 3 phần tử tạo 3 mảng → fallback về mức thấp gần nhất (3) vì yêu cầu phân phối đều trừ mảng cuối.
Ví dụ:
// Input: ['A','B','C','D','E','F','G','H','I'], n=2// Output: [['A','B','C','D','E'], ['F','G','H','I']]
Ví dụ
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));Kết quả
Đầu ra trong console sẽ là:
[ ['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I'] ]