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.
122 lines
10 KiB
122 lines
10 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "8abcada0534e0fb3a7556ea3c5a2a8a4",
|
|
"translation_date": "2025-10-23T20:44:41+00:00",
|
|
"source_file": "2-js-basics/4-arrays-loops/assignment.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# การบ้านเรื่องอาร์เรย์และลูป
|
|
|
|
## คำแนะนำ
|
|
|
|
ทำแบบฝึกหัดต่อไปนี้เพื่อฝึกการใช้งานอาร์เรย์และลูป แต่ละแบบฝึกหัดจะต่อยอดจากแนวคิดในบทเรียนและกระตุ้นให้คุณใช้ลูปประเภทต่างๆ และเมธอดของอาร์เรย์
|
|
|
|
### แบบฝึกหัดที่ 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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |