我正在尝试找到确定给定整数所在范围的最佳方法。 以这个哈希为例:
score_levels = {
1 => {'name' => 'Beginner', 'range' => 0..50},
2 => {'name' => 'Intermediate', 'range' => 51..70},
3 => {'name' => 'Pro', 'range' => 71..85},
4 => {'name' => 'Expert', 'range' => 86..96},
5 => {'name' => 'Master', 'range' => 97..100}
}
我想根据分数运行不同的逻辑,例如:
case score
when score_levels[1]['range']
level_counters[1] += 1
when score_levels[2]['range']
level_counters[2] += 1
when score_levels[3]['range']
level_counters[3] += 1
end
有没有更通用的方法来做这件事呢?也许可以考虑以下方式:
score_levels.each |key, val| {if val['range'].member?(score) then level_counters[key] += 1 }
谢谢!
score_levels
)分配给示例的哈希表。往往会省略这一点,甚至可能省略哈希表的大括号。作为一般规则,在给出示例时(这是一件好事),展示您期望或想要的输出是有帮助的。例如,在这里,您可以有一个小数组的分数,并显示您想要将它们映射到的级别。是的,在这里很明显,但它不需要太多的空间。 - Cary Swoveland