【发布时间】:2012-11-07 19:33:40
【问题描述】:
我有以下哈希数组
h = [{:foo=>:bar}, {:qqq=>:ppp}, {:xxx=>123}]
我想找到值中 Symbol 的所有哈希值。
目前我使用这种方法,但我实际上并不喜欢它,因为我必须为每个哈希创建数组并提取第一个元素 (hash.values[0])。
h.select { |hash| hash.values[0].is_a?(Symbol) }
# => [{:foo=>:bar}, {:qqq=>:ppp}]
也许有更优雅的方法可以做到这一点?
【问题讨论】:
-
感觉很奇怪,你只依赖于具有单个键/值对的哈希。为什么不创建一个专用对象?
-
你想要什么输出?
-
我同意apneadiving。它并没有真正利用 Hash 可以做什么,它们也可能是二元素数组。如果您能够按照@Konstantin 建议的方式更改输入,那将更有意义。
-
感谢您的建议。我知道我试图解决错误的问题。