0

次のハッシュの配列があります

h = [{:foo=>:bar}, {:qqq=>:ppp}, {:xxx=>123}]

値のすべてのハッシュを見つけたいSymbol

現在、私はこのアプローチを使用していますが、ハッシュごとに配列を作成し、最初の要素 ( ) を抽出する必要があるため、実際には好きではありませんhash.values[0]

h.select { |hash| hash.values[0].is_a?(Symbol) }
# => [{:foo=>:bar}, {:qqq=>:ppp}]

たぶん、これを行うにはもっとエレガントなものがありますか?

4

1 に答える 1

2

配列を使用したくない場合は、ハッシュを使用してください)

h = { :foo=>:bar, :qqq=>:ppp, :xxx=>123 }
h.select { |k, v| v.is_a?(Symbol) }
=> { :foo=>:bar, :qqq=>:ppp }
于 2012-11-07T11:33:40.280 に答える