- 締切済み
ネストされたハッシュの値から要素を削除する方法
以下の様なハッシュ「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"=>""}}
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Picosoft
- ベストアンサー率70% (274/391)
回答No.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"}}