1. ホーム
  2. ルビー

[解決済み】一致する値を含むハッシュキーを見つける方法

2022-04-07 10:32:47

質問

次のようなものがあるとします。 クライアント ハッシュの client_id と一致させたいキーを、ruby で素早く取得する方法(何行もスクリプトを書く必要はない)はありますか?例:どのようにして client_id == "2180" ?

clients = {
  "yellow"=>{"client_id"=>"2178"}, 
  "orange"=>{"client_id"=>"2180"}, 
  "red"=>{"client_id"=>"2179"}, 
  "blue"=>{"client_id"=>"2181"}
}

解決方法は?

を使用することができます。 列挙可能#select :

clients.select{|key, hash| hash["client_id"] == "2180" }
#=> [["orange", {"client_id"=>"2180"}]]

結果は、一致するすべての値の配列になることに注意しましょう。それぞれがキーと値の配列になります。