Apply to each (หรือที่รู้จักในชื่อ “For each loop”) คือการสั่งให้โปรแกรมทำงานซ้ำกับ ทุกๆ รายการ ที่อยู่ในชุดข้อมูล (Collection) หรืออาร์เรย์ (Array) โดยจำนวนรอบของการทำงานจะเท่ากับจำนวนของข้อมูลที่มีอยู่

หลักการสำคัญ:

  • ทำงานกับชุดข้อมูล: ต้องมีชุดข้อมูล (เช่น รายชื่ออีเมล, รายการไฟล์, แถวในตาราง Excel) เป็นตัวตั้งต้น
  • ทำครบทุกรายการ: การวนลูปจะเกิดขึ้นกับทุกรายการในชุดข้อมูลนั้นตั้งแต่รายการแรกจนถึงรายการสุดท้าย
  • จำนวนรอบที่แน่นอน: เรารู้ล่วงหน้าว่าลูปจะทำงานกี่รอบ ซึ่งก็คือจำนวนรายการทั้งหมดในชุดข้อมูล

ตัวอย่าง: สมมติว่าเรามีรายชื่ออีเมลของพนักงาน 3 คนบน excel file

เมื่อใช้ Apply to each เพื่อ “ส่งอีเมลแจ้งข่าวสาร” การทำงานจะเป็นดังนี้:

  1. รอบที่ 1: ส่งอีเมลไปที่ toey_rrt@hotmail.com
  2. รอบที่ 2: ส่งอีเมลไปที่ sathidchi@gmail.com
  3. รอบที่ 3: ส่งอีเมลไปที่ sathid_chi@outlook.com

ลูปจะสิ้นสุดลงเมื่อทำงานครบทั้ง 3 รายการ

Do until: ทำซ้ำจนกว่าเงื่อนไขจะบรรลุผล

Do until คือการสั่งให้โปรแกรมทำงานซ้ำไปเรื่อยๆ จนกว่าเงื่อนไข (Condition) ที่กำหนดไว้จะเป็นจริง การวนลูปจะหยุดเมื่อเงื่อนไขนั้นได้รับการตอบสนอง

หลักการสำคัญ:

  • ทำงานตามเงื่อนไข: ไม่ได้ขึ้นอยู่กับชุดข้อมูล แต่ขึ้นอยู่กับเงื่อนไขที่ตั้งไว้
  • จำนวนรอบที่ไม่แน่นอน: เราไม่สามารถรู้จำนวนรอบที่ชัดเจนล่วงหน้าได้ ลูปจะทำงานไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นจริง
  • ต้องมีการเปลี่ยนแปลงค่า: ภายในลูป จะต้องมีการกระทำบางอย่างที่ส่งผลให้ค่าที่ใช้ในเงื่อนไขมีการเปลี่ยนแปลง เพื่อให้ลูปสามารถสิ้นสุดได้ มิฉะนั้นอาจเกิดเป็น “ลูปไม่สิ้นสุด” (Infinite Loop)

สถานการณ์ที่เหมาะสมกับการใช้ Do until:

  • การรอการอนุมัติ: ส่งคำขออนุมัติและวนลูปตรวจสอบสถานะไปเรื่อยๆ จนกว่าสถานะจะเปลี่ยนเป็น “อนุมัติ” หรือ “ปฏิเสธ”
  • การเรียกใช้ API จนกว่าจะได้ข้อมูลที่ต้องการ: เรียกใช้ API เพื่อดึงข้อมูล และหากข้อมูลที่ได้ยังไม่สมบูรณ์ ก็ให้วนลูปรอและเรียกใหม่อีกครั้งจนกว่าจะได้ข้อมูลครบถ้วน
  • การทำงานจนกว่าจะถึงค่าเป้าหมาย: เช่น การบวกเลขไปเรื่อยๆ จนกว่าผลรวมจะมากกว่า 100

ตัวอย่าง: สมมติว่าเราต้องการรอให้สถานะของเอกสารในระบบเปลี่ยนเป็น “Approved”

เราสามารถใช้ Do until โดยตั้งเงื่อนไขว่า “ให้ทำซ้ำไปเรื่อยๆ จนกว่า (Do until) สถานะของเอกสาร (Status) จะเท่ากับ ‘Approved’”

การทำงานจะเป็นดังนี้:

  1. เริ่มต้น: สถานะเอกสารคือ “Pending”
  2. รอบที่ 1:
    • ตรวจสอบสถานะ -> ยังเป็น “Pending” (เงื่อนไขเป็นเท็จ)
    • รอ 5 นาที แล้วเริ่มรอบใหม่
  3. รอบที่ 2:
    • ตรวจสอบสถานะ -> ยังเป็น “Pending” (เงื่อนไขเป็นเท็จ)
    • รอ 5 นาที แล้วเริ่มรอบใหม่
  4. …รอบที่ n:
    • ผู้จัดการอนุมัติเอกสาร สถานะเปลี่ยนเป็น “Approved”
    • ตรวจสอบสถานะ -> เป็น “Approved” (เงื่อนไขเป็นจริง)
    • สิ้นสุดการวนลูป และทำงานในขั้นตอนต่อไป
คุณสมบัติApply to eachDo until
จุดประสงค์หลักทำงานกับทุกรายการในชุดข้อมูลทำงานซ้ำจนกว่าเงื่อนไขจะเป็นจริง
ปัจจัยในการวนลูปจำนวนรายการในอาร์เรย์/ชุดข้อมูลเงื่อนไขที่กำหนด
จำนวนรอบแน่นอน (เท่ากับจำนวนรายการ)ไม่แน่นอน
การสิ้นสุดลูปเมื่อทำงานครบทุกรายการเมื่อเงื่อนไขที่กำหนดเป็นจริง
ตัวอย่างการใช้งานส่งอีเมลหาทุกคนในลิสต์, บันทึกไฟล์แนบทั้งหมดรอการอนุมัติ, เรียก API จนสำเร็จ, นับเลขจนถึงเป้าหมาย

สรุป

Apply to each เหมาะสำหรับงานที่ต้องจัดการกับข้อมูลทีละชิ้นในชุดข้อมูลที่กำหนดไว้แล้ว

Do until เหมาะสำหรับกระบวนการที่ต้องรอคอยหรือทำซ้ำไปเรื่อยๆ จนกว่าจะเกิดสภาวะบางอย่างที่เราต้องการ การเลือกใช้เครื่องมือที่ถูกต้องจะช่วยให้การสร้าง Workflow อัตโนมัติของคุณมีประสิทธิภาพและตรงตามความต้องการมากที่สุด

ดูวิธีการทำงานบน ของ Apply to each และ Do until บน Youtube ได้เลยครับ

Podcast also available on PocketCasts, SoundCloud, Spotify, Google Podcasts, Apple Podcasts, and RSS.

Leave a comment