我有以下哈希数组
h = [{:foo=>:bar}, {:qqq=>:ppp}, {:xxx=>123}]
我想查找值Symbol
的所有哈希值。
目前我使用这种方法,但我实际上并不喜欢它,因为我必须为每个哈希创建数组并提取第一个元素(hash.values[0]
)。
h.select { |hash| hash.values[0].is_a?(Symbol) }
# => [{:foo=>:bar}, {:qqq=>:ppp}]
也许有更优雅的东西可以做到这一点?
答案 0 :(得分:2)
如果您不想使用数组,请使用哈希)
h = { :foo=>:bar, :qqq=>:ppp, :xxx=>123 }
h.select { |k, v| v.is_a?(Symbol) }
=> { :foo=>:bar, :qqq=>:ppp }