เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขเป็นอาร์กิวเมนต์แรกและตัวเลขเดียว เช่น num เป็นอาร์กิวเมนต์ที่สอง Num จะน้อยกว่าหรือเท่ากับความยาวของอาร์เรย์เสมอ
ฟังก์ชันควรเตรียมอาร์เรย์ใหม่ที่ต้องมีจำนวนอาร์เรย์ย่อยจำนวน num อาร์เรย์ย่อยทั้งหมดควรมีจำนวนอาร์เรย์เท่ากัน หากความยาวของอาร์เรย์หารด้วย num ลงตัวพอดี ไม่เช่นนั้นเฉพาะอาร์เรย์ย่อยสุดท้ายเท่านั้นที่ควรมีจำนวนองค์ประกอบต่างกัน
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตและตัวเลขเป็น −
const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const num = 3;
ดังนั้นเอาต์พุตสำหรับอินพุตด้านบนควรมีลักษณะดังนี้ −
const output = [ [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 ] ]