【发布时间】:2015-10-08 05:58:55
【问题描述】:
我有一个简单的程序,它可以获取用户的分数并计算他们的加权分数。我的函数接受一串成绩并返回一个整数数组,但一直返回Nan。这是我的功能:
function getUserScores(subject) {
var category;
switch (subject) {
case "test":
category = document.getElementById("testGrades").value;
category = category.split(',').map(function(item) {
return parseInt(item, 10);
});
case "quiz":
category = document.getElementById("quizGrades").value;
category = category.split(',').map(function(item){
return parseInt(item, 10);
});
case "homework":
category = document.getElementById("homeworkGrades").value;
category = category.split(',').map(function(item){
return parseInt(item, 10);
});
default:
return "Error: something went wrong with switch statement";
}
}
所以如果我用getUserScores("test") 调用它,它会获取testGrades 值,即"96, 92, 94" 并返回NaN 而不是[96, 92, 94]?我在这里做错了什么?
【问题讨论】:
-
您忘记退出每个
casebybreak -
我认为
return是break而你不需要包含它? -
return里面的mapfn 不影响getUserScores,我想你还需要在return里面添加一个getUserScores -
return只是将您的元素从字符串映射到 int 版本,而不是为了打破这种情况。
标签: javascript switch-statement map-function