Viết hàm chia mảng thành n mảng con, phân phối xen kẽ: phần tử 1→mảng 1, phần tử 2→mảng 2, ..., phần tử n→mảng n, phần tử n+1→mảng 1,...
Ví dụ
Đầu vào: [656, 756, 5345, 67, 43, 76, 54, 768, 34], n = 3
Kết quả:
[
[656, 67, 54],
[756, 43, 768],
[5345, 76, 34]
]
Giải pháp
Mã triển khai dùng reduce:
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
const divideArray = (arr, size) =>
arr.reduce((acc, val, ind) => {
const subIndex = ind % size;
if (!Array.isArray(acc[subIndex])) acc[subIndex] = [];
acc[subIndex].push(val);
return acc;
}, []);
console.log(divideArray(input, 3));
Kết quả
Đầu ra trong console:
[[656, 67, 54], [756, 43, 768], [5345, 76, 34]]