for-in กับคอลเลกชัน
วนดูทุกรายการโดยไม่ใช้ดัชนี
for-in กับคอลเลกชัน เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
ข้ามดัชนี
บ่อยครั้งคุณต้องการเพียงแต่ละรายการ ไม่ใช่ตำแหน่งของรายการ ลูป for-in จะส่งมอบรายการให้คุณทีละรายการโดยไม่ต้องจัดการตัวนับ ✨
รูปแบบของ for-in
เขียน for ตามด้วยชื่อตัวแปร คำสำคัญ in แล้วจึงเป็นชุดข้อมูลของคุณ ในแต่ละรอบ ตัวแปรจะรับองค์ประกอบถัดไป
for (var item in items) {
print(item);
}วนลูปผ่านรายการ
ให้ for-in ทำงานกับ รายการ แล้วลูปจะเข้าถึงทุกองค์ประกอบตามลำดับตั้งแต่ต้นจนจบ โดยที่คุณไม่ต้องจัดการ length หรือวงเล็บเหลี่ยม
var fruits = ['apple', 'pear'];
for (var f in fruits) {
print(f);
}สะอาดกว่าการใช้ดัชนี
เมื่อเทียบกับลูป for แบบคลาสสิก for-in จะตัดตัวนับ การตรวจสอบความยาว และการค้นหาด้วยวงเล็บเหลี่ยมออก โค้ดที่น้อยลงหมายถึง ข้อผิดพลาดที่น้อยลง
for (var f in fruits) {
print(f);
}ตัวแปรลูปที่ระบุชนิด
คุณสามารถระบุชื่อชนิดแทน var เพื่อให้ชัดเจนขึ้น ในที่นี้ องค์ประกอบแต่ละรายการถูกระบุอย่างชัดเจนว่าเป็น String ขณะที่ลูปเดินผ่านรายการ
for (String name in names) {
print(name);
}วนลูปผ่านเซต
เซตก็ใช้กับ for-in ได้เช่นกัน คุณจะได้รับค่าไม่ซ้ำกันแต่ละค่าครั้งเดียว แม้ลำดับจะไม่รับประกันเหมือนรายการ
var ids = {1, 2, 3};
for (var id in ids) {
print(id);
}สิ่งที่วนซ้ำได้ทุกชนิด
for-in ใช้ได้กับ สิ่งที่วนซ้ำได้ทุกชนิด ไม่ใช่แค่รายการและเซต ซึ่งรวมถึงช่วง คีย์ของแผนที่ และผลลัพธ์จาก map หรือ where
for (var k in scores.keys) {
print(k);
}การวนลูปรายการในแผนที่
หากต้องการวนลูปผ่านแผนที่ ให้เดินผ่าน รายการคู่ของแผนที่ แต่ละรายการจะเปิดให้เข้าถึงคีย์และค่าได้พร้อมกันในรอบเดียว
for (var e in scores.entries) {
print('${e.key}: ${e.value}');
}อ่านอย่างเดียวจนเป็นนิสัย
ให้ถือว่าตัวแปรลูปเป็น สำเนาของค่าแต่ละรายการ การกำหนดค่าใหม่ให้ตัวแปรนี้จะไม่เปลี่ยนองค์ประกอบเดิมในชุดข้อมูล
for (var n in nums) {
n = n * 2; // does not change nums
}อย่าแก้ไขขณะวนลูป
การเพิ่มหรือลบรายการจากชุดข้อมูลระหว่างใช้ for-in จะทำให้เกิดข้อผิดพลาด ให้สร้างรายการ ใหม่แทน หรือวนลูปผ่านสำเนา
for (var x in list) {
// list.add(x); // throws!
}ทางเลือกอย่าง forEach
เมธอด forEach ทำงานเดียวกันโดยใช้ฟังก์ชันเรียกกลับ โดยทั่วไป for-in อ่านเข้าใจง่ายกว่า และรองรับ break กับ continue
fruits.forEach((f) => print(f));ตรวจสอบอย่างรวดเร็ว
คุณต้องการแสดงค่าทุกรายในรายการโดยไม่ต้องจัดการดัชนี ตัวเลือกใดสะอาดที่สุด
สรุปทบทวน
คุณได้เรียนรู้ ลูป for-in: เข้าถึงแต่ละรายการของสิ่งที่วนซ้ำได้ทุกชนิดโดยไม่ต้องมีตัวนับ วนลูปผ่านรายการ เซต และรายการคู่ของแผนที่ได้อย่างเป็นระเบียบ 🎯
คำถามที่พบบ่อย
บทเรียน “for-in กับคอลเลกชัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “for-in กับคอลเลกชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “for-in กับคอลเลกชัน”
วนดูทุกรายการโดยไม่ใช้ดัชนี คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “for-in กับคอลเลกชัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม
ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ลูป for แบบคลาสสิก
- ลูป while และ do-while
- for-in กับคอลเลกชัน
- break, continue และป้ายกำกับ