ruby:hash配列のkey検索

hash配列を指定keyで検索し、取得する。

mast = [{code: "101", name:"abc"},
  {code: "201", name:"cde"},
  {code: "101", name:"a"},
  {code: "102", name:"efg"},
  {code: "101", name:"abc"},
  {code: "301", name:"b"}]

select だと該当する全行を取得(Array)。

>> result = mast.select { |a| a[:name].include?('abc') }                                                                                     
=> [{:code=>"101", :name=>"abc"}, {:code=>"101", :name=>"abc"}]

>> result = mast.select { |a| a[:name].include?('a') }
=> [{:code=>"101", :name=>"abc"}, {:code=>"101", :name=>"a"}, {:code=>"101", :name=>"abc"}]

find だと最初に該当した行のみ(hash)

>> result = mast.find { |a| a[:name].include?('a') }                                                                                         
=> {:code=>"101", :name=>"abc"}

>> result = mast.find { |a| a[:name]=='abc' }
=> {:code=>"101", :name=>"abc"}
>> result = mast.find { |a| a[:name]=='b' }
=> {:code=>"301", :name=>"b"}