我的目标是获取名称和数字的哈希值,例如:
hash = {
"Matt" => 30,
"Dave" => 50,
"Alex" => 60
}
Run Code Online (Sandbox Code Playgroud)
并根据他们是否达到"通过"分数对他们进行分组.我想结果,以作为数组传递到两个独立的按键,说:pass和:fail这样的:
hash = { "pass" => ["Alex", 60], "fail" => [["Matt", 30]["Dave",60]]}
Run Code Online (Sandbox Code Playgroud)
我知道这个group_by方法是我需要的,但我不确定如何将值传递给新键.
通过等级应由用户决定.对于此示例,您可以使用45.
你可以这样做:
PASSING_GRADE = 45
hash.group_by {|_, v| v >= PASSING_GRADE ? 'pass' : 'fail'}
Run Code Online (Sandbox Code Playgroud)
结果如下:
{"fail"=>[["Matt", 30], "pass"=>[["Alex", 60], ["Dave", 50]]]}
Run Code Online (Sandbox Code Playgroud)