プロが教えるわが家の防犯対策術!

以下の様なハッシュ「target」に対し、idもしくはtag_idの値が""であるtarget["4"]の要素のみ削除したいと考えています。どなたか方法をご教授いただけないでしょうか。

target = {"0"=>{"id"=>"2", "tag_id"=>"3"}, "1"=>{"id"=>"3", "tag_id"=>"1"}, "2"=>{"id"=>"4", "tag_id"=>"1"}, "3"=>{"id"=>"5", "tag_id"=>"2"}, "4"=>{"id"=>"", "tag_id"=>""}}

A 回答 (1件)

target = {"0"=>{"id"=>"2", "tag_id"=>"3"}, "1"=>{"id"=>"3", "tag_id"=>"1"}, "2"=>{"id"=>"4", "tag_id"=>"1"}, "3"=>{"id"=>"5", "tag_id"=>"2"}, "4"=>{"id"=>"", "tag_id"=>""}}


target.delete_if{|k,v| v["id"].empty? || v["tag_id"].empty?}
# => {"0"=>{"id"=>"2", "tag_id"=>"3"}, "1"=>{"id"=>"3", "tag_id"=>"1"}, "2"=>{"id"=>"
4", "tag_id"=>"1"}, "3"=>{"id"=>"5", "tag_id"=>"2"}}

参考URL:http://docs.ruby-lang.org/ja/2.1.0/class/Hash.ht …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!