Enumerable
min,max
irb(main):056:0> a=[1,2,3] => [1, 2, 3] irb(main):057:0> a.max => 3 irb(main):058:0> a.min => 1 irb(main):059:0> a=["a","b","c"] => ["a", "b", "c"] irb(main):060:0> a.max => "c" irb(main):061:0> a.min => "a"
irb(main):013:0> a=["city","xyz"] => ["city", "xyz"] irb(main):014:0> a.max => "xyz" irb(main):015:0> a.max{|a,b| a.size<=>b.size} => "city"
detect
blockがtrueに評価された最初の要素を返す。見つからなかったらnilを返す。
aliasはfind.
irb(main):064:0> a=[1,2,3] => [1, 2, 3] irb(main):065:0> a.detect{|elem| elem%2==0} => 2 irb(main):066:0> a.detect{|elem| elem%2!=0} => 1 irb(main):067:0> a.detect{|elem| elem%4==0} => nil
each_with_index
blockの引数は要素・インデックスの並び。
irb(main):070:0> hash = Hash.new => {} irb(main):071:0> %w(red blue yellow).each_with_index{|item, index| hash[index]=item} => ["red", "blue", "yellow"] irb(main):072:0> p hash {0=>"red", 1=>"blue", 2=>"yellow"} => nil
to_a
irb(main):074:0> hash => {0=>"red", 1=>"blue", 2=>"yellow"} irb(main):073:0> hash.to_a => [[0, "red"], [1, "blue"], [2, "yellow"]]
find_all
blockがtrueに評価されたすべての要素を配列で返す。見つからなかったら空の配列を返す。
別名->select
irb(main):016:0> a=[1,2,3] irb(main):077:0> a.find_all{|elem| elem%2!=0} => [1, 3]
reject
blockがfalseに評価されたすべての要素を配列で返す。見つからなかったら空の配列を返す。
irb(main):016:0> a=[1,2,3] => [1, 2, 3] irb(main):017:0> a.reject{|elem| elem%2!=0} => [2]
grep
irb(main):084:0> days = ["monday","tuesday","wednesday","thursday","friday","saturday"] => ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday"] irb(main):085:0> days.grep(/es/) => ["tuesday", "wednesday"]
irb(main):089:0> (1..100).grep(20..30) => [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]