Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แบ่งอาร์เรย์เป็นกลุ่ม (Chunk) - JavaScript

อาร์เรย์: ['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))