0Pricing
Ruby Academy · บทเรียน

map, select, reject

แปลงและกรองข้อมูล

map, select, reject เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

การแปลงข้อมูลด้วย map

map สร้างอาร์เรย์ใหม่โดยเรียกใช้บล็อกกับสมาชิกแต่ละรายการ อาร์เรย์เดิมจะไม่เปลี่ยนแปลง

nums = [1, 2, 3]
doubled = nums.map { |n| n * 2 }
puts doubled.inspect
puts nums.inspect

map สำหรับสตริง

map สามารถแปลงค่าได้ทุกชนิด เช่น เปลี่ยนคำให้เป็นตัวพิมพ์ใหญ่

words = ["red", "green"]
puts words.map { |w| w.upcase }.inspect

ทางลัดด้วยสัญลักษณ์

เมื่อบล็อกมีหน้าที่เพียงเรียกใช้เมธอดเดียว ให้ใช้ &:method เป็นทางลัด

words = ["a", "b", "c"]
puts words.map(&:upcase).inspect

map พร้อมตำแหน่ง

ต่อคำสั่ง with_index เมื่อคุณต้องการตำแหน่งของสมาชิกด้วย

letters = %w[a b c]
result = letters.map.with_index { |l, i| "#{i}:#{l}" }
puts result.inspect

การกรองด้วย select

select (ชื่อพ้องคือ filter) จะเก็บไว้เฉพาะสมาชิกที่บล็อกให้ค่าเป็นจริง

nums = [1, 2, 3, 4, 5, 6]
evens = nums.select { |n| n.even? }
puts evens.inspect

การกรองสตริง

select ใช้กับเงื่อนไขใดก็ได้ เช่น เก็บเฉพาะคำที่มีความยาวมาก

words = ["hi", "hello", "hey", "welcome"]
puts words.select { |w| w.length > 3 }.inspect

การนำออกด้วย reject

reject ทำงานตรงข้ามกับ select โดยจะนำสมาชิกที่บล็อกให้ค่าเป็นจริงออก

nums = [1, 2, 3, 4]
puts nums.reject { |n| n.even? }.inspect

การต่อ map และ select

เนื่องจากแต่ละเมธอดคืนค่าเป็นอาร์เรย์ใหม่ คุณจึงสามารถต่อเมธอดเป็นกระบวนการต่อเนื่องได้

nums = [1, 2, 3, 4, 5]
result = nums.select { |n| n.odd? }.map { |n| n * 10 }
puts result.inspect

การกรองและแปลง

filter_map รวมการกรองและการแปลงไว้ในการวนรอบเดียว โดยจะเก็บผลลัพธ์ของบล็อกที่ไม่ใช่ค่าเท็จ

nums = [1, 2, 3, 4]
result = nums.filter_map { |n| n * 2 if n.even? }
puts result.inspect

การแปลงและคลี่อาร์เรย์

flat_map จะแปลงข้อมูลแล้วคลี่อาร์เรย์ซ้อนกันออกมาหนึ่งระดับ

pairs = [[1, 2], [3, 4]]
puts pairs.flat_map { |p| p }.inspect

การแบ่งกลุ่ม

partition แบ่งคอลเลกชันออกเป็นสองอาร์เรย์ ได้แก่ สมาชิกที่ตรงเงื่อนไขและสมาชิกที่ไม่ตรงเงื่อนไข

nums = [1, 2, 3, 4, 5]
evens, odds = nums.partition { |n| n.even? }
puts evens.inspect
puts odds.inspect

ตรวจสอบความเข้าใจ

ตรวจสอบความเข้าใจเรื่องการแปลงและการกรอง

สรุป

คุณเชี่ยวชาญการแปลงและการกรองแล้ว:

  • ใช้ map เพื่อแปลงข้อมูล พร้อมทางลัด &:method
  • select/filter และ reject
  • การต่อเมธอด, filter_map, flat_map, partition

ถัดไป: reduce และ each_with_object สำหรับการรวมค่า

puts [1, 2, 3, 4].select(&:even?).map { |n| n * n }.inspect

คำถามที่พบบ่อย

บทเรียน “map, select, reject” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “map, select, reject” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “map, select, reject”

แปลงและกรองข้อมูล คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “map, select, reject” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม

ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างช่วง
  2. มอดูล Enumerable
  3. map, select, reject
  4. reduce และ each_with_object
← กลับไปที่ Ruby Academy