2

私はハッシュを持っています:

a = {
  "person" => [
    {
      "age"     => ["0"],
      "details" => [
        {
          "hobby"    => ["6"],
          "interest" => ["programming"]
        }
      ]
    }
  ]
}

「ディテール」の価値を知りたい。それを行う簡単な方法は次のようになります

a["person"].first["details"].first 

しかし、長すぎて見栄えがよくありません。これを行う他の方法はありますか?

4

2 に答える 2

3

ハッシュから値を取得する元のコードは、私には問題ないように見えます。より良いことをしたい場合は、ハッシュを変更するだけです。

a = {"person"=>{"age"=>["0"], "details"=>{"hobby"=>["6"], "interest"=>["programming"]}}}

次に、より良い方法でアクセスを取得できます。

a['person']['details'] #=> {"hobby"=>["6"], "interest"=>["programming"]}
于 2012-05-24T22:06:46.433 に答える
3

ハッシュの構造に基づいて検索条件を検索する場合、最も簡単な方法は、アクセスコマンドでこの構造を表現することです。

数文字少なくしたい場合は、次のようになります。

a["person"][0]["details"][0]

キー名に基づいて検索条件を設定する場合は、Hashクラスで独自の関数を作成して、ネストされたハッシュを検索し、次のようにすることができます。

a.search(:details).first

角かっこが気に入らない場合は、https://github.com/intridea/hashieを使用して、属性を介してハッシュ内のデータにアクセスします。

a.person.first.details.first

とにかく、あなたのコードはどんなルビイストにとってもほとんど普通に見えるので、あなたは何もすることができません。

于 2012-05-24T22:13:38.333 に答える