我有一个在哈希里面的数组。我希望使用以下数组知道学生的结果(通过/失败)。首先,我必须将它们与特定标准匹配,并将它们的标记与散列传递进行比较并失败。我希望根据他们的标记获得密钥传递或失败。如何使用Ruby实现这一目标?
array = [
{
:standard =>1
:pass=>{:tamil=>30,:eng=>25,:math=>35},
:fail=>{:tamil=>10,:eng=>15,:maths=>20}
},
{
:standard =>2,
:pass=>{:tamil=>40,:eng=>35,:math=>45},
:fail=>{:tamil=>20,:eng=>25,:maths=>30}
}
]
答案 0 :(得分:0)
假定@student被定义
standard = array.select {|standard| standard[:standard] == @student.standard}
eng_pass = @student.eng_mark >= standard[:pass][:eng]
eng_fail = @student.eng_mark <= standard[:fail][:eng]
return [eng_pass, eng_fail, whatever_else_you_want]
各种主题的来回。
答案 1 :(得分:0)
从这个结构中读取值的语法类似于:
array[0][:pass][:eng]
因此您可以像往常一样进行批量比较:
for i in 0..@students_array.length
num = # student's score
standard = # something like array[0][:pass][:eng]
if num > standard
# something like 'put "You passed!"'
end
end