การวนซ้ำแฮช
each, map, select
การวนซ้ำแฮช เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
การวนทำซ้ำด้วย each
เมธอด each จะเยี่ยมชมทุกคู่ โดยบล็อกจะได้รับคีย์และค่า
scores = { math: 90, art: 80 }
scores.each do |subject, score|
puts "#{subject}: #{score}"
endeach_pair
each_pair เป็นชื่ออื่นของ each สำหรับแฮช คุณสามารถใช้แบบใดก็ได้ที่อ่านเข้าใจง่ายกว่า
h = { a: 1, b: 2 }
h.each_pair { |k, v| puts "#{k}=#{v}" }การวนทำซ้ำเฉพาะคีย์
each_key จะวนผ่านคีย์เมื่อคุณไม่ต้องการค่า
h = { name: "Ada", age: 36 }
h.each_key { |k| puts k }การวนทำซ้ำเฉพาะค่า
each_value จะวนผ่านค่าโดยตรง
h = { a: 10, b: 20 }
total = 0
h.each_value { |v| total += v }
puts totalการแปลงด้วย map
map ที่ใช้กับแฮชจะคืนอาร์เรย์ โดยแต่ละคู่จะถูกส่งต่อเป็นคีย์และค่า
prices = { pen: 2, book: 5 }
labels = prices.map { |item, p| "#{item}: $#{p}" }
puts labels.inspecttransform_values
transform_values จะคืนแฮชใหม่ที่เปลี่ยนค่าแต่ละค่าแล้ว โดยยังคงคีย์เดิมไว้
prices = { pen: 2, book: 5 }
doubled = prices.transform_values { |p| p * 2 }
puts doubledtransform_keys
transform_keys จะเปลี่ยนคีย์โดยคงค่าเดิมไว้ เหมาะสำหรับการแปลงสตริงเป็นสัญลักษณ์
h = { "a" => 1, "b" => 2 }
puts h.transform_keys(&:to_sym)การกรองด้วย select
select (ชื่ออื่นคือ filter) จะเก็บคู่ที่บล็อกให้ค่าเป็นจริงและคืนแฮชใหม่
scores = { a: 90, b: 50, c: 70 }
passing = scores.select { |k, v| v >= 70 }
puts passingการปฏิเสธคู่
reject ทำงานตรงข้ามกับ select โดยตัดคู่ที่บล็อกให้ค่าเป็นจริงออก
scores = { a: 90, b: 50 }
puts scores.reject { |k, v| v < 60 }การค้นหาและนับ
find จะคืนคู่แรกที่ตรงกันเป็นอาร์เรย์ ส่วน count ที่ใช้ร่วมกับบล็อกจะนับจำนวนการจับคู่
h = { a: 1, b: 2, c: 3 }
puts h.find { |k, v| v == 2 }.inspect
puts h.count { |k, v| v.odd? }การรวมค่า
ใช้ values ร่วมกับ sum เพื่อหาผลรวม หรือใช้ each_with_object สำหรับการรวมค่าแบบกำหนดเอง
cart = { apple: 3, pear: 5 }
puts cart.values.sumตรวจสอบความเข้าใจอย่างรวดเร็ว
ตรวจสอบความเข้าใจเกี่ยวกับการวนทำซ้ำกับแฮชของคุณ
ทบทวน
ตอนนี้คุณสามารถวนทำซ้ำกับแฮชได้แล้ว:
each,each_key,each_valuemap,transform_values,transform_keysselect/rejectสำหรับกรองข้อมูลfind,countและการรวมค่า
ถัดไป: ค่าเริ่มต้นและการรวมแฮช
h = { a: 1, b: 2, c: 3 }
puts h.select { |k, v| v.odd? }คำถามที่พบบ่อย
บทเรียน “การวนซ้ำแฮช” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การวนซ้ำแฮช” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การวนซ้ำแฮช”
each, map, select คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การวนซ้ำแฮช” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ