Ruby มีเทคนิคมากมายในการวนซ้ำส่วนประกอบและการทำงานกับคอลเลกชัน ห้าวิธีที่ใช้บ่อยจะถูกสำรวจในโพสต์บล็อกนี้: แต่ละวิธี ทำแผนที่ (หรือรวบรวม) เลือก และตรวจจับ (หรือค้นหา)

  1. แต่ละวิธี:

โมดูล Enumerable ใน Ruby สร้างขึ้นจากแต่ละฟังก์ชัน ช่วยให้คุณสามารถดำเนินการกับแต่ละองค์ประกอบของคอลเลกชันในขณะที่คุณวนซ้ำองค์ประกอบเหล่านั้นโดยไม่ต้องเปลี่ยนคอลเลกชันหลัก หากคุณไม่จำเป็นต้องแก้ไของค์ประกอบด้วยตนเอง แต่ยังต้องการรันโค้ดสำหรับแต่ละองค์ประกอบ จะมีประโยชน์

numbers = [1, 2, 3, 4]
 => [1, 2, 3, 4] 

3.0.0 :002 > numbers.each do |num|
3.0.0 :003 >   puts num * 2
3.0.0 :004 > end
2
4
6
8
 => [1, 2, 3, 4]

2. แผนที่/วิธีการรวบรวม:

วิธีการแมป (หรือรวบรวม) ใช้สำหรับ การแปลงแต่ละองค์ประกอบของคอลเลกชัน และ ส่งคืนอาร์เรย์ใหม่ที่มีค่าที่แปลงแล้ว พวกเขาใช้บล็อกโค้ดกับแต่ละองค์ประกอบและรวบรวมผลลัพธ์ สามารถใช้แผนที่เงื่อนไขและการรวบรวมได้

numbers = [1, 2, 3, 4]
 => [1, 2, 3, 4]

numbers.map {|num| num * 2}
 => [2, 4, 6, 8]

3. วิธีการเลือก:

วิธีการเลือกหรือที่เรียกว่าตัวกรอง ใช้เพื่อกรององค์ประกอบตามเงื่อนไข ส่งคืนอาร์เรย์ใหม่ที่มีเฉพาะองค์ประกอบที่ ตรงตามเกณฑ์หลังจากประเมินบล็อกของโค้ดสำหรับแต่ละองค์ประกอบ

numbers = [1, 2, 3, 4]
 => [1, 2, 3, 4] 

 numbers.select {|num| num.even?}
 => [2, 4]

4. วิธีการตรวจจับ/ค้นหา:

วิธีการตรวจจับหรือที่เรียกว่า find ใช้เพื่อ ค้นหาองค์ประกอบแรก ในคอลเลกชันที่ตรงตามเงื่อนไข โดยจะประเมินบล็อกของโค้ดสำหรับแต่ละองค์ประกอบและส่งกลับองค์ประกอบแรกที่ตรงกับเงื่อนไข

numbers = [1, 2, 3, 4]
 => [1, 2, 3, 4] 

numbers.detect {|num| num.even?}
 => 2