gpt4 book ai didi

javascript - 在 JavaScript 中输出成绩

转载 作者:行者123 更新时间:2023-11-30 15:14:10 25 4
gpt4 key购买 nike

给定一个函数 myGrading,我需要返回发送与给定分数对应的字母等级的文本。

  • (100 - 90) --> 'A'
  • (89 - 80) --> 'B'
  • (79 - 70) --> 'C'
  • (69 - 60) --> 'D'
  • (59 - 0) --> 'F'

  • 基本上,如果给定的分数大于 100 或小于 0,它应该返回“INVALID SCORE”。

  • 如果分数在给定范围的 0 和 2(含)之间,则返回带“-”的字母
  • 如果分数介于给定范围的 8 和 9(含)之间,则返回带有“+”的字母
  • 没有 F+,也没有 F-。

所以我所做的是,我想出了一个使用 switch 语句的函数:

function myGrading(score) {
var gscore;

switch(true) {
case (score <= 100 && score >= 90):
gscore = 'A';
break;
case (score <= 89 && score >= 80):
gscore = 'B';
break;
case (score <= 79 && score >= 70):
gscore = 'C';
break;
case (score <= 69 && score >= 60):
gscore = 'D';
break;
case (score <= 59 && score >= 0):
gscore = 'F';
break;

case (score > 100 && score < 0):
gscore = 'INVALID SCORE';
break;

case (score <= 2 && score >= 0):
gscore += '-';
break;

case (score <= 9 && score >= 8):
gscore += '+';
break;

default:
return 'INVALID SCORE';
}

return gscore;
}

var output = convertScoreToGradeWithPlusAndMinus(91);
console.log(output); // --> MUST OUTPUT 'A-'

现在上面的代码没有显示正确的答案。知道我做错了什么吗?

最佳答案

我在研究如何解决这个问题时遇到了这个问题。抱歉,我知道这是一个旧线程,但我希望通过发布,也许我可以对我提出的解决方案有一些看法,看看它是否更好,如果不是,它的缺点是什么。这应该动态处理作为对象传递给它的任何分布类型。

// An object with the letter grade as key and the floor value of the grade as its value
const distribution = {
A: 90,
B: 80,
C: 70,
D: 60,
F: 0
};

const getGrade = (score, distribution, maxScore = 100, minScore = 0) => {

// Handle edge cases
if (score > maxScore || score < minScore) {
return "Error";
}
// Get an array of the letter grades
const grades = Object.keys(distribution);

// Sort the grades in descending order of the floor score of each grade
grades.sort((a, b) => distribution[b] - distribution[a]);

// Since the grades are sorted, the first grade to be lower than the score will be the correct grade to return
const grade = grades.find(grade => distribution[grade] <= score);

// No + or - for bottom grade
if (grade === grades[grades.length - 1]) {
return grade
} else if (score - distribution[grade] <= 2) { // check and return "-" grades
return grade += "-"
} else if (score - distribution[grade] >= 8) { // check and return "+" grades
return grade += "+"
} else { // return normal grades
return grade
}
};

关于javascript - 在 JavaScript 中输出成绩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44711412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com