我有一个 Json 对象,我正在解析它,然后与另一个数组进行比较以找到它们匹配的位置。我有到目前为止的代码,
var gpaGrades = '{"A": 4, "A-": 3.67, "B+": 3.33, "B": 3, "B-": 2.67, "C+": 2.33, "C": 2, "C-": 1.67, "D+": 1.33, "D": 1, "D-": 0.67, "F":0}';
var letterGrades = ["A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-"]
var fallGrades = ["Fall 2015", "A-", "B+", "A", "B", "A"];
var springGrades = ["Spring 2016", "A+", "A+", "A-", "B+", "A"];
var gpa = JSON.parse(gpaGrades);
var sum = 0;
function getGrades(semester){
if(semester === "Fall 2015"){
for (var i = 1; i < fallGrades.length; i++) {
for(var x = 0; x < letterGrades.length; x++){
if (letterGrades[x].indexOf(fallGrades[i]) >= 0) {
var getGPA = fallGrades[i];
console.log(gpa[getGPA]);
}
}
}
}
}
这有效并为我提供了与字母等级及其相应分值相匹配的所有值。问题是我需要获得 gpa[getGPA] 值的总和,然后计算该学期的 GPA,然后除以长度。
我已经尝试过
var sum += gpa[getGPA];
不知道为什么这不起作用,因为我看到了一个类似的例子,其中只有一个整数数组工作正常。
感谢您的帮助。
最佳答案
不要在循环内使用 var,这每次都会重新声明 sum。在循环外部使用 var (仍应在函数内部工作)。然后在循环内使用 sum += gpa[getGPA];
。
关于javascript - 添加在 Json 对象中找到的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34367234/