我有一个巨大的散列(JSON),我想通过删除不同的值,然后合计一个值集,将其与"主密钥"进行比较。
我认为这将是一个很好的方法来处理复杂的评分标准的测试评分。
关于如何做到这一点的建议?有什么宝石可以让我的生活更轻松吗?
{
"A" => 10,
"B" => 7,
etc
....
散列像test[answer] => test[point_value]
一样构造,并且问题关键字/值是答案/点值。
因此,如果我想与master_key进行比较,并删除不同的项(而不是像arr1-arr2
那样删除相似的项……然后将值相加,什么是最好的?
在将哈希转换为ruby哈希后,我会做这样的
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