Ruby中數組的遍歷


轉自:http://www.jianshu.com/p/8de9b60f9350

Ruby中有幾個常用的遍歷數組的方法,本人經常容易搞混。這里列出來總結一下。

  • each: 從數組中取出一個元素,作為某個方法的參數。返回未修改的數組本身。
    irb>  [1,3,5,7,9].each { |item| puts item+'!'} => 1!3!5!7!9!
  • map(collect): 對數組中的每一個元素都執行一個相同的操作。數組本身並不被修改(map!和collect!原地進行修改),返回一個修改后的原數組的拷貝。
    irb> [1,3,5,7,9].map { |item| item + 1 } => [2,4,6,8,10]
  • inject(reduce): 對應上面的map,對數組進行規約。
    irb> [1,2,3,4,5,6,7,8,9,10].inject(0) { |sum,e| sum += e } => 55 #以0為初值進行規約,規約運算為加法
  • select(detect):使用某種布爾運算,對數組進行篩選。返回篩選后剩下的結果集。
    irb> [1,2,3,4,5,6,7,8,9,10].select {|item| item.even? } => [2,4,6,8,10]
  • reject: 和select的邏輯相反。
    irb> [1,2,3,4,5,6,7,8,9,10].reject {|item| item.even? } => [1,3,5,7,9]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM