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

การแบ่งอาร์เรย์เป็นชunks (Chunking) ตามจำนวนที่กำหนดใน JavaScript

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์และจำนวน chunk (num) แล้วแบ่งอาร์เรย์เป็น num ชิ้นย่อย โดยชิ้นสุดท้ายอาจมีขนาดต่างกันถ้าไม่หารลงตัว

ตัวอย่าง: [1,2,3,4,5,6,7,8] และ num=3 → [[1,2,3],[4,5,6],[7,8]]

ตัวอย่างโค้ด

const arr = [1, 2, 3, 4, 5, 6, 7, 8];
const num = 3;

const chunkArray = (arr = [], num = 1) => {
  const { length: l } = arr;
  const elPerArr = Math.ceil(l / num);
  const res = arr.reduce((acc, val, ind) => {
    const curr = Math.floor(ind / elPerArr);
    if (!acc[curr]) { acc[curr] = [val]; }
    else { acc[curr].push(val); }
    return acc;
  }, []);
  return res;
};

console.log(chunkArray(arr, num));

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ]