เราจำเป็นต้องเขียนฟังก์ชัน สมมติว่า chunk() ที่รับอาร์เรย์ arr ของ string / number literals เป็นอาร์กิวเมนต์แรกและตัวเลข n เป็นอาร์กิวเมนต์ที่สอง
เราจำเป็นต้องส่งคืนอาร์เรย์ของอาร์เรย์ย่อย n อัน ซึ่งแต่ละอาร์เรย์มีไม่เกิน −
arr.length / n elements.
การกระจายองค์ประกอบควรเป็นแบบนี้ -
องค์ประกอบแรกจะไปในอาร์เรย์ย่อยที่หนึ่ง ที่สองในสอง สามในสาม และอื่นๆ เมื่อเรามีหนึ่งองค์ประกอบในแต่ละ subarray แล้ว เราจะเริ่มด้วยการเติม subarray แรกด้วยองค์ประกอบที่สองของมัน ในทำนองเดียวกัน เมื่ออาร์เรย์ย่อยทั้งหมดมีสององค์ประกอบหลังจากนั้น เราจะเติมองค์ประกอบที่สามในอาร์เรย์แรกและต่อไปเรื่อยๆ
ตัวอย่างเช่น หากอาร์เรย์อินพุตเป็น −
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
และจำนวน n คือ 3
จากนั้นผลลัพธ์ควรเป็น −
const output = [ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ];
ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
เราจะใช้วิธี Array.prototype.reduce() แทนอาร์เรย์เดิมเพื่อสร้างอาร์เรย์ที่ต้องการ
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34]; const divideArray = (arr, size) => { return arr.reduce((acc, val, ind) => { const subIndex = ind % size; if(!Array.isArray(acc[subIndex])){ acc[subIndex] = [val]; }else{ acc[subIndex].push(val); }; return acc; }, []); }; console.log(divideArray(input, 3));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ]