配列で要素の合計を出したい場合、
sum関数で簡単にできる。(ruby2.4から使えるみたい)
irb(main):001:0> a=[1,2,3,4,5] => [1, 2, 3, 4, 5] irb(main):002:0> a.sum => 15
偶数だけ足すだとか条件に合ったものだけを足す場合、
select関数で偶数だけの配列を作り、それをsum関数で合計する。
irb(main):013:0> a=[1,2,3,4,5,6] => [1, 2, 3, 4, 5, 6] irb(main):014:0> a.select{|n| n.even?}.sum => 12
a.select{|n| n.even?} で偶数だけの配列を作っている。
ちなみにeven?は値が偶数だとtrue、それ以外だとfalseを返す関数
irb(main):015:0> a.select{|n| n.even?} => [2, 4, 6]
奇数だけを足す場合は
irb(main):019:0> a=[1,2,3,4,5,6] => [1, 2, 3, 4, 5, 6] irb(main):020:0> a.select{|n| n.odd?}.sum => 9
a.select{|n| n.odd?} で奇数だけの配列を作っている。
odd?は値が奇数だとtrue、それ以外だとfalseを返す関数
irb(main):021:0> a.select{|n| n.odd?} => [1, 3, 5]
リンク