Viết hàm chunk() nhận mảng arr (chuỗi/số) và số n. Trả về mảng n mảng con, mỗi mảng con chứa tối đa arr.length / n phần tử. Phân phối: phần tử 1 vào mảng con 1, phần tử 2 vào mảng con 2, ... khi mỗi mảng con có 1 phần tử, tiếp tục điền phần tử 2 vào mảng con 1, và cứ thế.
Ví dụ:
// input: [1, 2, 3, 4, 5, 6]// output: [ [1, 4], [2, 5], [3, 6] ]
Sử dụng Array.prototype.reduce():
Ví dụ
const input = [1, 2, 3, 4, 5, 6, 7, 8, 9];const chunk = (arr, size) => { return arr.reduce((acc, val, ind) => { const subIndex = ind % size; if (!Array.isArray(acc[subIndex])) { acc[subIndex] = [val]; } else { acc[subIndex].push(val); } return acc; }, []);};console.log(chunk(input, 4));Kết quả
Đầu ra trong console sẽ là:
[ [ 1, 5, 9 ], [ 2, 6 ], [ 3, 7 ], [ 4, 8 ] ]