我有一个巨大的哈希(JSON),我想与一个"主密钥"通过删除不相似的值然后总计一个值集。
我认为用复杂的评分标准来处理测试评分是一种很好的方法。
有关如何执行此操作的建议?有什么宝石可以让我的生活更轻松吗?
{
"A" => 10,
"B" => 7,
etc
....
哈希的构造类似于test[answer] => test[point_value]
,问题键/值是答案/点值。
因此,如果我想与master_key进行比较并删除不同项目(不删除像arr1-arr2
这样的类似项...那么总计这些值,最好的是什么?
答案 0 :(得分:0)
将哈希转换为红宝石哈希后,我会做这样的事情
tester = { :"first" => { :"0" => { :"0" => { :"B" => 10 }, :"1" => { :"B" => 7 }, :"2" => { :"B" => 5 } } }}
master = { :"first" => { :"0" => { :"0" => { :"A" => 10 }, :"1" => { :"B" => 7 }, :"2" => { :"B" => 5 } } }}
tester.reduce(0) do |score, (test, section)|
section.each do |group, questions|
questions.each do |question, answer|
if answer.keys.first == master[test][group][question].keys.first
score += answer.values.first
end
end
end
score
end