我有一个看起来像的哈希:
day = {
:morning => true,
:afternoon => false,
:evening => true,
:night => true
}
我想得到== true
我现在正在做
sum = day.count.to_f
adherence_percent = (day.select{|k, v| v == true }.count / sum) * 100
:> 66.6666666
我能做到更优雅/更有效吗?
答案 0 :(得分:2)
如果你知道那里只有真/假值
day.values.count(&:itself)
,否则
day.values.count { |item| item == true }
用法:
sum = day.count.to_f
adherence_percent = day.values.count(&:itself) / sum * 100
答案 1 :(得分:2)