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"}