编写所有 else if 语句有点乏味。有没有更简单的方法来编写以下代码?
function convertScoreToGradeWithPlusAndMinus(score) {
// your code here
if(score <= 100 && score >= 98) return "A+";
else if(score <= 97 && score >= 93) return "A";
else if(score <= 92 && score >= 90) return "A-";
else if(score <= 89 && score >= 88) return "B+";
else if(score <= 87 && score >= 83) return "B";
else if(score <= 82 && score >= 80) return "B-";
else if(score <= 79 && score >= 78) return "C+";
else if(score <= 77 && score >= 73) return "C";
else if(score <= 72 && score >= 70) return "C-";
else if(score <= 69 && score >= 68) return "D+";
else if(score <= 67 && score >= 63) return "D";
else if(score <= 62 && score >= 60) return "D-";
else if(score <= 59 && score >= 0) return "F";
else return "INVALID SCORE";
}
var output = convertScoreToGradeWithPlusAndMinus(91);
console.log(output); // --> 'A-'
最佳答案
较短的代码并不总是更好的代码。您可以使用 ascii 和一些数学技巧编写此代码的非常简短的版本。但以后其他人将无法读取它。我认为可读性和性能是需要考虑的两个最重要的事情。
var limits = ['-','','+','+']
function convertScoreToGradeWithPlusAndMinus(score) {
if(score==100) return 'A+';
if(score<59) return 'F';
var lCode = 74 - Math.floor(score/10);
var sign = limits[Math.floor((score % 10)/3)]
return String.fromCharCode(lCode)+ sign;
}
score : <input id="scoreBox" type="text"/>
<input onclick="alert(convertScoreToGradeWithPlusAndMinus(scoreBox.value))" value="calculate" type="button"/>
关于javascript - 将分数转换为等级更简单。有没有更简单的方法来编写以下代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41494680/