匹配对象然后计算学生成绩的成绩
match objects then calculate grade for student grade
我遇到了一个问题。
所以我正在制作这个学生评分系统。它的工作方式是系统应该能够将答案键与学生的答案相匹配。答案键是这样存储的:
const answerkeys = {math01: a, math02: b, math03 : d, ...}
还有一个评分系统,math01值5分,math02值10分,等等。出于困惑,我将数据保存在另一组数据集合中,如下所示:
const scoring = {math01: 5, math02: 10, math03: 5, ...}
然后学生的答案是这样存储的:
const answers = {0: {math01: a, math02: c, ... }
1: {math01: b, math02: a, ... }
2: {math01: a, math02: c, ... }
...
}
起初,逻辑上我认为我可以迭代答案,然后单个结果将与 answerkeys 匹配,然后返回的(匹配项)将与 answerkeyandscore 相乘。
所以我尝试这样做:
const studentAnswers = answers.map((elem) => {return elem});
studentAnswer.filter(answer => answerkeys.includes(answer));
但它给了我
"result.js:82 Uncaught TypeError: Cannot read properties of undefined
(reading 'filter')"
如何比较“answerkeys”和“answers”,然后使用“scoring”计算分数?
Object
对象没有原生的 map
,但我建议这样做:
let allStudentsScores = {}
for (var idx in answers) {
let studentAnswer = answers[idx]
let studentScore = 0
for(var key in studentAnswer) {
if (studentAnswer[key]==answerkeys[key]) {
studentScore += scoring[key]
}
}
allStudentsScores[idx] = studentScore
}
allStudentsScores
变量包含每个学生的分数。其中 idx <0, 1, 2, ...>
代表每个学生。
希望能回答您的问题。
我遇到了一个问题。
所以我正在制作这个学生评分系统。它的工作方式是系统应该能够将答案键与学生的答案相匹配。答案键是这样存储的:
const answerkeys = {math01: a, math02: b, math03 : d, ...}
还有一个评分系统,math01值5分,math02值10分,等等。出于困惑,我将数据保存在另一组数据集合中,如下所示:
const scoring = {math01: 5, math02: 10, math03: 5, ...}
然后学生的答案是这样存储的:
const answers = {0: {math01: a, math02: c, ... }
1: {math01: b, math02: a, ... }
2: {math01: a, math02: c, ... }
...
}
起初,逻辑上我认为我可以迭代答案,然后单个结果将与 answerkeys 匹配,然后返回的(匹配项)将与 answerkeyandscore 相乘。
所以我尝试这样做:
const studentAnswers = answers.map((elem) => {return elem});
studentAnswer.filter(answer => answerkeys.includes(answer));
但它给了我
"result.js:82 Uncaught TypeError: Cannot read properties of undefined (reading 'filter')"
如何比较“answerkeys”和“answers”,然后使用“scoring”计算分数?
Object
对象没有原生的 map
,但我建议这样做:
let allStudentsScores = {}
for (var idx in answers) {
let studentAnswer = answers[idx]
let studentScore = 0
for(var key in studentAnswer) {
if (studentAnswer[key]==answerkeys[key]) {
studentScore += scoring[key]
}
}
allStudentsScores[idx] = studentScore
}
allStudentsScores
变量包含每个学生的分数。其中 idx <0, 1, 2, ...>
代表每个学生。
希望能回答您的问题。