อาร์เรย์: ['a', 'b', 'c', 'd'] ขนาดกลุ่ม: 2 → [['a','b'], ['c','d']]
ตัวอย่างโค้ด
const arr = ['a', 'b', 'c', 'd'];
const n = 2;
const chunk = (arr, size) => {
const res = [];
for (let i = 0; i < arr.length; i++) {
if (i % size === 0) {
res.push([arr[i]]);
} else {
res[res.length - 1].push(arr[i]);
}
}
return res;
};
console.log(chunk(arr, n));ผลลัพธ์
[ [ 'a', 'b' ], [ 'c', 'd' ] ]
คำอธิบาย: ลูปทุก index ถ้า index หาร size ลงตัว (i % size === 0) เริ่มกลุ่มใหม่ มิฉะนั้นเพิ่มในกลุ่มล่าสุด
วิธีอื่น: Array.from({length: Math.ceil(arr.length/size)}, (_, i) => arr.slice(i*size, (i+1)*size))