You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/th/2-js-basics/4-arrays-loops/assignment.md

10 KiB

การบ้านเรื่องอาร์เรย์และลูป

คำแนะนำ

ทำแบบฝึกหัดต่อไปนี้เพื่อฝึกการใช้งานอาร์เรย์และลูป แต่ละแบบฝึกหัดจะต่อยอดจากแนวคิดในบทเรียนและกระตุ้นให้คุณใช้ลูปประเภทต่างๆ และเมธอดของอาร์เรย์

แบบฝึกหัดที่ 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

โครงสร้างตัวอย่าง:

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 แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้