หลายคนอาจจะเคยใช้ เมธอดเหล่านี้มาบ้างใน Ruby แต่วันนี้จะมาแสดงให้ดูกันว่า ทั้งสามตัวนี้แตกต่างกันอย่างไร
Select
จะเป็นการบอกว่าจะเลือกอะไรบ้าง โดยมีเงื่อนไขเป็นอย่างไร เช่น จะเลือกตัวที่ มีค่ามากกว่า 3 เท่านั้น ดังตัวอย่างด้านล่าง
array = [1,2,3,4,5]
array.select { |n| n > 3 }=> [4, 5]
จากตัวอย่างก็จะทำการ return ค่าออกมา คืิอ [4,5] เท่านั้น
Reject
ตรงกันข้ามกับ Select เลย คือ ไม่เอาตัวที่ แล้วตามด้วยเงื่อนไข เช่น ไม่เอาตัวที่ มีค่าเท่ากับ 3
array = [1,2,3,4,5]
array.reject { |n| n == 3 }=> [1, 2, 4, 5]
ก็ตรงไปตรงมา ไม่เอา 3 ก็ [1,2,4,5]
Collect
collect จะแตกต่างจากสองตัวบนนิดหน่อยคือ จะทำการ return ทุกค่าใน array ที่ได้จากการกระทำตามเงื่อนไข ใน block นั้นๆ และนำมาใส่ใน array ใหม่ ถ้าอ่านแล้ว งง มาดูตัวอย่าง
array = [1,2,3,4,5]
array.collect { |n| n * 3 }=> [3, 6, 9, 12, 15]
จากตัวอย่างจะแสดงค่า ที่ได้จากการคูณกันแต่ละตัว(n)ใน block โดยการนำไปใส่ใน array ใหม่ ในแต่ละรอบ จนครบและ return เป็นค่าใหม่ออกมา
1 * 3 = 3
2 * 3 = 6
3 * 3 = 9
4 * 3 = 12
5 * 3 = 15
=> [3, 6, 9, 12, 15]
อีกตัวอย่างนึง
alpha = ['a', 'b', 'c', 'd']
alpha.collect { |c| c.capitalize }=> ["A", "B", "C", "D"]
เขียนแบบ ลดรูปก็จะได้หน้าตาแบบนี้
alpha = ['a', 'b', 'c', 'd']
alpha.collect(&:capitalize)=> ["A", "B", "C", "D"]
จะทำการวน ทุกตัว และเปลี่ยนค่าเป็นตัวพิมพ์ใหญ่ทั้งหมด
ถึงแม้จะใช้ต่างกัน อยู่ที่การหยิบมาใช้ในแต่ละงาน แต่ สุดท้ายแล้ว ทั้ง 3 เมธอดนี้ จะ return ค่าออกมาเป็น array เหมือนกัน
สนใจอ่านเพิ่มเติม RubyDocs
วันนี้ฝากไว้เพียงเท่านี้
บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน ตามความต้องการ!
เราเป็นผู้นำในด้านการให้บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน และโซลูชันด้านไอที แบบครบวงจร (Full-stack) ตั้งแต่การให้คำปรึกษาไปจนถึงการ Maintenace ระบบ เรามีความตั้งใจที่จะเปลี่ยนให้ นวัตกรรม และไอเดีย ระดับโลกของคุณให้กลายเป็นซอฟต์แวร์ที่มีคุณภาพ โดยที่บริษัทรับพัฒนาซอฟต์แวร์ เขียนโปรแกรม และ แอปพลิเคชัน ตามความต้องการทางธุรกิจคุณได้ ทุกรูปแบบ ทุกประเภท ทุกความต้องการทางธุรกิจ หากคุณมีไอเดียดีๆ ที่ต้องการพัฒนา Software หรือ พัฒนา Application สามารถปรึกษาเราได้ที่นี่!