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 回答