1. ホーム
  2. ルビー

[解決済み】rubyでハッシュの配列の中をハッシュ値で検索するにはどうすればいいですか?

2022-04-04 21:24:49

質問

ハッシュの配列@fathersを持っています。

a_father = { "father" => "Bob", "age" =>  40 }
@fathers << a_father
a_father = { "father" => "David", "age" =>  32 }
@fathers << a_father
a_father = { "father" => "Batman", "age" =>  50 }
@fathers << a_father 

この配列を検索して、あるブロックが真を返すハッシュの配列を返すにはどうすればよいでしょうか?

例えば

@fathers.some_method("age" > 35) #=> array containing the hashes of bob and batman

ありがとうございます。

どのように解決するのですか?

あなたが探しているのは 列挙可能#select (と呼ばれることもあります。 find_all ):

@fathers.select {|father| father["age"] > 35 }
# => [ { "age" => 40, "father" => "Bob" },
#      { "age" => 50, "father" => "Batman" } ]

ドキュメントによると、これは [列挙可能なもの、この場合] のすべての要素を含む配列を返します。 @fathers を使用します。