我有一个像这样的数组:
search_results = [{policy: {isActive: true}}]
我希望获得search_result
的计数,其中isActive
为真。在这种情况下,数组只包含1个policy
isActive
对象为true
的项目。
我尝试过:
search_results.group_by { |x| x.policy.isActive }.count
然而,我总是得到1
。无论isActive
是真还是假。
答案 0 :(得分:1)
您使用[]
访问哈希键值对,而非.
。
search_results.count { |hash| hash[:policy][:isActive] }
如果您使用的是较新的Ruby版本,则可以使用Hash#dig
(Ruby 2.3+)和Enumerable#sum
(Ruby 2.4 +):
search_results.sum { |hash| hash.dig(:policy, :isActive) }