บทความนี้จะอธิบายขั้นตอนการหยุดการวนรอบ forEach ใน JavaScript
จะหยุด JavaScript สำหรับแต่ละรายการได้อย่างไร
ขึ้นอยู่กับความต้องการเฉพาะของโปรแกรม มีหลายวิธีในการหยุดการวนซ้ำในการเขียนโปรแกรม ตัวอย่างเช่น คุณอาจใช้เงื่อนไขการสิ้นสุดลูปหรือคำสั่งพัก เช่น “ หยุดพัก ” หรือ “ ทางออก ” เพื่อหยุดการวนซ้ำเมื่อตรงตามเงื่อนไขที่กำหนด อย่างไรก็ตาม ปัญหาก็คือ “ แต่ละ ” วนซ้ำแสดงข้อผิดพลาดขณะใช้คำสั่งเหล่านี้
ตัวอย่างที่ 1: ใช้ “break” ในแต่ละลูปของ JavaScript
ลองหยุด ' แต่ละ ” วนซ้ำโดยใช้ปุ่ม “ หยุดพัก ' คำให้การ. ขั้นแรก สร้างอาร์เรย์ของเลขคี่:
เป็นอาร์เรย์ = [ หนึ่ง , 3 , 5 , 7 , 9 , สิบเอ็ด , 13 , สิบห้า ] ;
ใช้ forEach วนซ้ำเพื่อวนซ้ำอาร์เรย์ หากองค์ประกอบ “ 5 ” เกิดขึ้นในอาร์เรย์ระหว่างการวนซ้ำ หยุดการวนซ้ำ:
อาร์เรย์ แต่ละ ( องค์ประกอบ => {
ถ้า ( องค์ประกอบ == 5 ) {
หยุดพัก ;
}
} ) ;
จะเห็นได้ว่าคำสั่ง break ไม่ทำงานใน forEach ลูป:
ตัวอย่างที่ 2: ใช้ “EXIT” ใน forEach JavaScript Loop
พยายามหยุดการวนซ้ำโดยใช้ “ ทางออก ” เมื่อองค์ประกอบ “ 5 ” เกิดขึ้นในอาร์เรย์ระหว่างการวนซ้ำ:
อาร์เรย์ แต่ละ ( องค์ประกอบ => {
ถ้า ( องค์ประกอบ == 5 ) {
ทางออก ;
}
} ) ;
นอกจากนี้ยังทำให้เกิดข้อผิดพลาด:
การหยุดการวนซ้ำ forEach() ดูเหมือนจะเป็นเรื่องที่เป็นไปไม่ได้ แต่นี่คือวิธีแก้ไขสองสามข้อในการประเมิน:
วิธีที่ 1: หยุด JavaScript สำหรับแต่ละรายการโดยใช้บล็อก “ลอง/จับ”
ไม่มีวิธีในตัวที่จะหยุดหรือทำลายการวนซ้ำ forEach() ใน JavaScript อย่างไรก็ตาม คุณสามารถบรรลุผลที่คล้ายกันได้โดยการโยนข้อยกเว้นและดักจับมันภายในลูป ในการดำเนินการนี้ ให้ใช้ปุ่ม “ ลอง / จับ ' บล็อก. เป็นโครงสร้างการควบคุมที่ให้คุณจัดการข้อยกเว้นหรือข้อผิดพลาดรันไทม์ที่อาจเกิดขึ้นในโค้ด รหัสที่อาจทำให้เกิดข้อยกเว้นอยู่ใน ' ลอง ” บล็อก ในขณะที่รหัสที่จัดการข้อยกเว้นมีอยู่ใน “ จับ ' บล็อก.
ไวยากรณ์
ใช้ไวยากรณ์ที่กำหนดด้านล่างสำหรับการใช้บล็อก try/catch:
ลอง {// รหัสที่อาจส่งข้อยกเว้น
} จับ ( ข้อผิดพลาด ) {
// รหัสสำหรับจัดการกับข้อยกเว้น
}
ตัวอย่าง
ล้อมรหัสลูป forEach() ในบล็อก try/catch เพื่อหยุดการวนซ้ำโดยจัดการข้อผิดพลาด:
ลอง {อาร์เรย์ แต่ละ ( องค์ประกอบ => {
ถ้า ( องค์ประกอบ == 5 ) {
โยน ใหม่ ข้อยกเว้น ( 'หยุด' ) ;
}
} ) ;
} จับ ( และ ) {
คอนโซล บันทึก ( 'ลูปสิ้นสุด' ) ;
}
ในตัวอย่างโค้ดข้างต้น เมื่อมีการส่งข้อยกเว้นภายในบล็อก try โปรแกรมจะข้ามไปที่บล็อก catch ทันทีและรันโค้ดที่นั่น สิ่งนี้ทำให้เราสามารถจัดการข้อยกเว้นและป้องกันโปรแกรมจากการหยุดทำงาน
เอาต์พุต
โดยทั่วไปไม่แนะนำให้ใช้บล็อก try/catch เพื่อหยุดการวนซ้ำ forEach() ใน JavaScript นี่เป็นเพราะจุดประสงค์ของบล็อก try/catch คือการจัดการข้อยกเว้นมากกว่าที่จะควบคุมการไหลของลูป ดังนั้นจึงเป็นการดีกว่าที่จะใช้วิธีอื่น
วิธีที่ 2: ใช้ลูป 'for' ใน JavaScript
ใช้ ' สำหรับ ” วนซ้ำแทน forEach() วนซ้ำ คำสั่ง break ใช้ใน for loop ซึ่งอนุญาตให้ออกก่อนกำหนดก่อนที่จะถึงเงื่อนไขการสิ้นสุดของลูป สิ่งนี้มีประโยชน์หากคุณต้องการหยุดการวนซ้ำเมื่อเงื่อนไขบางอย่างได้รับการประเมินเป็น ' จริง ” หรือออกจากลูปด้วยเหตุผลอื่นใด
ไวยากรณ์
ทำตามไวยากรณ์ต่อไปนี้สำหรับการใช้ ' สำหรับ ” วนซ้ำ:
สำหรับ ( ปล่อยให้ฉัน = 0 ; ผม < อาร์เรย์ ความยาว ; ผม ++ ) {//สภาพ
หยุดพัก ;
}
ตัวอย่าง
ใช้ ' สำหรับ ” วนซ้ำอาร์เรย์จนสุดความยาวและหยุดอาร์เรย์ในขณะที่เกิดอิลิเมนต์ “ 5 ” ในอาร์เรย์:
สำหรับ ( ปล่อยให้ฉัน = 0 ; ผม < อาร์เรย์ ความยาว ; ผม ++ ) {คอสต์ องค์ประกอบ = อาร์เรย์ [ ผม ] ;
ถ้า ( องค์ประกอบ == 5 ) {
หยุดพัก
}
คอนโซล บันทึก ( องค์ประกอบ ) ;
}
การวนซ้ำจะหยุดเมื่อ “ 5 ” ปรากฏในอาร์เรย์:
วิธีที่ 3: ใช้ลูป 'for-of' ใน JavaScript
คุณยังสามารถใช้ปุ่ม “ สำหรับของ ” วนซ้ำแทน forEach() วนซ้ำ ใช้เพื่อวนซ้ำองค์ประกอบของวัตถุที่วนซ้ำได้ เช่น อาร์เรย์หรือสตริง มันคล้ายกับ for-in loop แต่ได้รับการออกแบบมาโดยเฉพาะเพื่อทำงานกับวัตถุที่วนซ้ำได้ และโดยทั่วไปถือว่ากระชับกว่าและอ่านง่ายกว่า
ไวยากรณ์
ไวยากรณ์ต่อไปนี้ใช้สำหรับ for-of loop:
สำหรับ ( คอสต์ องค์ประกอบของอาร์เรย์ ) {//สภาพ
หยุดพัก ;
}
ตัวอย่าง
ที่นี่ใช้ for-of loop เพื่อวนซ้ำอาร์เรย์และหยุดการวนซ้ำเมื่อองค์ประกอบ “ 5 ” ปรากฏในอาร์เรย์ระหว่างการวนซ้ำ:
สำหรับ ( คอสต์ องค์ประกอบของอาร์เรย์ ) {ถ้า ( องค์ประกอบ == 5 ) {
หยุดพัก ;
}
คอนโซล บันทึก ( องค์ประกอบ ) ;
}
เอาต์พุต
นั่นคือทั้งหมดที่เกี่ยวกับการหยุดลูป forEach() ใน JavaScript
บทสรุป
ไม่มีวิธีในตัวที่จะหยุดหรือทำลายการวนซ้ำ forEach() ใน JavaScript แต่คุณสามารถบรรลุผลที่คล้ายกันได้โดยใช้ ' ลอง / จับ” บล็อก. อย่างไรก็ตาม ไม่แนะนำให้ใช้เพราะบล็อก try/catch มีไว้เพื่อจัดการกับข้อยกเว้นมากกว่าที่จะควบคุมโฟลว์ของลูป ดังนั้นแนวทางที่เหมาะสมคือการใช้วิธีอื่น เช่น “ สำหรับ ” หรือ “ สำหรับของ ” วนซ้ำ ในบทความนี้ เราได้อธิบายขั้นตอนการหยุดการวนซ้ำ forEach() ใน JavaScript