javascript - 添加在 Json 对象中找到的数字

标签 javascript html arrays json loops

我有一个 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/

相关文章:

javascript - 使用对象值作为参数调用 JavaScript 函数

javascript - 使用$.get,需要初始化隐藏页面上的变量

html - 来自无处的随机 css 类

javascript - 通过带有输入字段的嵌套 ul/li 结构进行过滤,如果输入为空,则重置为原始状态

如果时间段已被占用,则 PHP 检查数组

c++ - 逐字节读取内存

javascript - 如果表的行或列大小 > 1,则应该可以执行操作

javascript - 我们应该继续在 AngularJS 中使用表单吗?

c - 将 char 数组分配给 char*

javascript - 如何更改 react 中导航栏标题的值?