javascript - 如何拆分字符串数组,将字符串数字解析为整数并将它们添加到 for 循环中
问题描述
我有一个字符串数组(以分数形式写的分数),例如[“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"]
钠
钠
数组 ["60", "60"]
钠
钠
数组 ["40", "40"]
钠
钠
ETC
然而,当只是自己打印出解析的整数时,它们已经被正确解析了......
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
ETC...
那么为什么我不能把总数加在一起呢?我如何解决它?是因为范围吗?
谢谢!
解决方案
myCategoryScore
永远不会被初始化。
myCategoryScore = myCategoryScore + myQuestionScore;
会提供undefined + 42 //NaN
同样对于maxCategoryScore
如何重现您的错误:
var UndefinedValue;
console.log(UndefinedValue);
console.log(UndefinedValue + 42);
初始化您的变量,以便您可以在数学运算中使用它们:
var scoreArray = ["45/60", "60/60", "40/40","30/40", "15/20", "30/40", "30/60", "20/40"];
var i;
// initialize this one
var myCategoryScore = 0;
// and this one
var maxCategoryScore = 0;
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);
}
推荐阅读
- apache-camel - Apache Camel 类型转换器列表
- blazor - Blazor 在属性值更改上调用方法
- reactjs - How to use react native components in react js
- python - 为什么 Python 不使用所有可用的系统资源
- numpy - 用另一个数组操作一个 numpy 数组
- mysql - 在特定列值之后显示记录
- javascript - 在回调函数中将流转换为字符串以返回字符串
- python - 抓取完成后无法获取集合的内容
- javascript - 当 youtube 选项卡不在焦点时,chrome 扩展程序应该暂停视频
- c++ - 在 Linux 上的项目中包含 ft2build.h