# การบ้านเรื่องอาร์เรย์และลูป ## คำแนะนำ ทำแบบฝึกหัดต่อไปนี้เพื่อฝึกการใช้งานอาร์เรย์และลูป แต่ละแบบฝึกหัดจะต่อยอดจากแนวคิดในบทเรียนและกระตุ้นให้คุณใช้ลูปประเภทต่างๆ และเมธอดของอาร์เรย์ ### แบบฝึกหัดที่ 1: โปรแกรมสร้างรูปแบบตัวเลข สร้างโปรแกรมที่แสดงตัวเลขทุกๆ 3 ตัวระหว่าง 1-20 และพิมพ์ลงในคอนโซล **ข้อกำหนด:** - ใช้ `for` loop พร้อมการเพิ่มค่าที่กำหนดเอง - แสดงตัวเลขในรูปแบบที่เข้าใจง่าย - เพิ่มคำอธิบายที่ชัดเจนในโค้ดของคุณ **ผลลัพธ์ที่คาดหวัง:** ``` 3, 6, 9, 12, 15, 18 ``` > **เคล็ดลับ:** ปรับการแสดงผลใน `for` loop ของคุณเพื่อข้ามตัวเลข ### แบบฝึกหัดที่ 2: การวิเคราะห์อาร์เรย์ สร้างอาร์เรย์ที่มีตัวเลขอย่างน้อย 8 ตัว และเขียนฟังก์ชันเพื่อวิเคราะห์ข้อมูล **ข้อกำหนด:** - สร้างอาร์เรย์ชื่อ `numbers` ที่มีค่าอย่างน้อย 8 ค่า - เขียนฟังก์ชัน `findMaximum()` เพื่อคืนค่าตัวเลขที่มากที่สุด - เขียนฟังก์ชัน `findMinimum()` เพื่อคืนค่าตัวเลขที่น้อยที่สุด - เขียนฟังก์ชัน `calculateSum()` เพื่อคืนค่าผลรวมของตัวเลขทั้งหมด - ทดสอบแต่ละฟังก์ชันและแสดงผลลัพธ์ **ความท้าทายเพิ่มเติม:** สร้างฟังก์ชันที่ค้นหาตัวเลขที่มากที่สุดอันดับสองในอาร์เรย์ ### แบบฝึกหัดที่ 3: การประมวลผลอาร์เรย์ของสตริง สร้างอาร์เรย์ของภาพยนตร์/หนังสือ/เพลงที่คุณชื่นชอบ และฝึกการใช้ลูปประเภทต่างๆ **ข้อกำหนด:** - สร้างอาร์เรย์ที่มีค่าเป็นสตริงอย่างน้อย 5 ค่า - ใช้ `for` loop แบบดั้งเดิมเพื่อแสดงรายการพร้อมตัวเลข (1. ชื่อรายการ) - ใช้ `for...of` loop เพื่อแสดงรายการในตัวพิมพ์ใหญ่ - ใช้เมธอด `forEach()` เพื่อคำนวณและแสดงจำนวนตัวอักษรรวมทั้งหมด **ตัวอย่างผลลัพธ์:** ``` Traditional for loop: 1. The Matrix 2. Inception 3. Interstellar For...of loop (uppercase): THE MATRIX INCEPTION INTERSTELLAR Character count: Total characters across all titles: 42 ``` ### แบบฝึกหัดที่ 4: การกรองข้อมูล (ขั้นสูง) สร้างโปรแกรมที่ประมวลผลอาร์เรย์ของออบเจ็กต์ที่แสดงถึงนักเรียน **ข้อกำหนด:** - สร้างอาร์เรย์ที่มีออบเจ็กต์นักเรียนอย่างน้อย 5 ตัว โดยมีคุณสมบัติ: `name`, `age`, `grade` - ใช้ลูปเพื่อค้นหานักเรียนที่มีอายุ 18 ปีขึ้นไป - คำนวณค่าเฉลี่ยของเกรดนักเรียนทั้งหมด - สร้างอาร์เรย์ใหม่ที่มีเฉพาะนักเรียนที่มีเกรดมากกว่า 85 **โครงสร้างตัวอย่าง:** ```javascript const students = [ { name: "Alice", age: 17, grade: 92 }, { name: "Bob", age: 18, grade: 84 }, // Add more students... ]; ``` ## การทดสอบโค้ดของคุณ ทดสอบโปรแกรมของคุณโดย: 1. รันแต่ละแบบฝึกหัดในคอนโซลของเบราว์เซอร์ 2. ตรวจสอบผลลัพธ์ให้ตรงกับที่คาดหวัง 3. ทดสอบด้วยชุดข้อมูลที่แตกต่างกัน 4. ตรวจสอบว่าโค้ดของคุณสามารถจัดการกรณีขอบ (อาร์เรย์ว่าง, องค์ประกอบเดียว) ได้ ## แนวทางการส่งงาน รวมสิ่งต่อไปนี้ในงานที่คุณส่ง: - โค้ด JavaScript ที่มีคำอธิบายอย่างดีสำหรับแต่ละแบบฝึกหัด - ภาพหน้าจอหรือผลลัพธ์ข้อความที่แสดงโปรแกรมของคุณทำงาน - คำอธิบายสั้นๆ ว่าคุณเลือกใช้ลูปประเภทใดสำหรับแต่ละงานและเหตุผล ## เกณฑ์การให้คะแนน | เกณฑ์ | ดีเยี่ยม (3 คะแนน) | พอใช้ (2 คะแนน) | ต้องปรับปรุง (1 คะแนน) | | -------- | -------------------- | ------------------- | --------------------------- | | **การทำงาน** | ทำแบบฝึกหัดทั้งหมดได้ถูกต้องรวมถึงความท้าทายเพิ่มเติม | แบบฝึกหัดที่จำเป็นทำงานได้ถูกต้อง | แบบฝึกหัดบางส่วนไม่สมบูรณ์หรือมีข้อผิดพลาด | | **คุณภาพของโค้ด** | โค้ดสะอาดและจัดระเบียบดี พร้อมชื่อตัวแปรที่อธิบายได้ | โค้ดทำงานได้แต่ยังไม่สะอาด | โค้ดไม่เป็นระเบียบหรือเข้าใจยาก | | **คำอธิบาย** | มีคำอธิบายที่ครอบคลุมเกี่ยวกับตรรกะและการตัดสินใจ | มีคำอธิบายพื้นฐาน | มีคำอธิบายน้อยหรือไม่มีเลย | | **การใช้ลูป** | แสดงความเข้าใจในการใช้ลูปประเภทต่างๆ อย่างเหมาะสม | ใช้ลูปได้ถูกต้องแต่มีความหลากหลายจำกัด | ใช้ลูปผิดหรือไม่มีประสิทธิภาพ | | **การทดสอบ** | มีหลักฐานการทดสอบอย่างละเอียดด้วยสถานการณ์ต่างๆ | แสดงการทดสอบพื้นฐาน | มีหลักฐานการทดสอบน้อยหรือไม่มีเลย | ## คำถามสะท้อนความคิด หลังจากทำแบบฝึกหัดเสร็จ ลองพิจารณา: 1. ลูปประเภทใดที่รู้สึกว่าใช้ง่ายที่สุด และเพราะอะไร? 2. คุณพบความท้าทายอะไรบ้างเมื่อทำงานกับอาร์เรย์? 3. ทักษะเหล่านี้สามารถนำไปใช้กับโครงการพัฒนาเว็บในโลกจริงได้อย่างไร? 4. คุณจะทำอะไรแตกต่างออกไปหากต้องปรับปรุงโค้ดให้มีประสิทธิภาพมากขึ้น? --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้