【发布时间】:2019-05-13 14:01:45
【问题描述】:
-
我有一个字符串数组(分数形式的分数),例如[“40/60”,“30/40”,...]。分数代表用户对问题的回答,数组是给定类别的所有回答。
-
我想拆分字符串,将每个字符串解析为一个整数,然后在 for 循环中添加每个左侧分数以获得用户的总类别分数,并添加每个右侧分数以获得总可能最大值得分。
我已经尝试了下面的代码,并且正在返回 NaN。
################
var scoreArray = ["45/60", "60/60", "40/40","30/40", "15/20", "30/40", "30/60", "20/40"];
var i;
var myCategoryScore;
var maxCategoryScore;
################
for(i=0; i < scoreArray.length;i++){
var splitScore = scoreArray[i].split("/");
console.log(splitScore);
myQuestionScore = parseInt(splitScore[0], 10);
myCategoryScore = myCategoryScore + myQuestionScore;
console.log(myCategoryScore);
maxQuestionScore = parseInt(splitScore[1]);
maxCategoryScore = maxCategoryScore + maxQuestionScore;
console.log(maxCategoryScore);
}
打印的结果是:
数组 ["45", "60"]
NaN
NaN
数组 ["60", "60"]
NaN
NaN
数组 ["40", "40"]
NaN
NaN
等
但是,当只是自己打印出已解析的整数时,它们已被正确解析...
for(i=0; i<scoreArray.length;i++){
var splitScore = scoreArray[i].split("/");
console.log(splitScore);
myQuestionScore = parseInt(splitScore[0], 10);
console.log(myQuestionScore);
maxQuestionScore = parseInt(splitScore[1]);
console.log(maxQuestionScore);
}
这导致..
数组 ["45", "60"]
45
60
数组 ["60", "60"]
60
60
数组 ["40", "40"]
40
40
等等……
那么为什么我不能把总数加在一起呢?我如何解决它?是因为范围吗?
谢谢!
【问题讨论】:
-
您正在执行
myCategoryScore = myCategoryScore + myQuestionScore;但myCategoryScore被声明为undefined。 (var myCategoryScore; // myCategoryScore === undefined)
标签: javascript arrays for-loop split parseint