在Ruby中按哈希分组

马特·怀特

我的目标是对名称和数字进行哈希处理,例如:

hash = {
  "Matt" => 30,
  "Dave" => 50,
  "Alex" => 60
}

并根据他们是否达到“及格”分数对他们进行分组。我想结果,以作为数组传递到两个独立的按键,说:pass:fail这样的:

hash = { "pass" => ["Alex", 60], "fail" => [["Matt", 30]["Dave",60]]}

我知道该group_by方法是我所需要的,但是不确定如何将值传递到新键中。

合格分数应由用户决定。对于此示例,您可以使用45。

亚历克斯·通科诺任科(Alex Tonkonozhenko)

您可以通过以下方式进行处理:

PASSING_GRADE = 45
hash.group_by {|_, v| v >= PASSING_GRADE ? 'pass' : 'fail'}

结果如下:

{"fail"=>[["Matt", 30], "pass"=>[["Alex", 60], ["Dave", 50]]]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章