我需要创建一个函数来计算输入的不同等级的数量,它只显示最常见的等级

I need to create a function that counts the number of different grades entered at the moment it just shows the most common grade

本文关键字:常见 显示 输入 创建 计算 函数 一个      更新时间:2023-09-26

下面是我的代码:

//input variables
var students = [];
var marks = [];
//output variables
var grade = [];
var topMark = 0;
var topStudent = "";
var botMark = 0;
var award = "";
var error = "";
var Acount = 0;
var Bcount = 0;
var Ccount = 0;
var Fcount = 0;

//Getting Name and Mark
var index = 0;
var i = 0;
var name = prompt("Enter student name","Harry");
while (name != ""){
    students[index] = name;
    index++;
    var mark = prompt("Enter Mark " + name)
    marks[i] = mark;
    i++;
    name = prompt("Enter student name", "John");
};
//Getting Grade
function getGrade(mark){
    if (mark < 50){
    grade = "F";
    } else if (mark < 70){
    grade = "C";
    } else if (mark < 83){
    grade = "B";
    } else {
    grade = "A";
    } return grade;
}
// Top Student Function
function topStudent(){
}
// Top Mark Function
function topMark(){
}
// Bottom Mark Function
function botMark(){
}
// A, B, C, and F Count Function
function getCountOf(grades, grade){
    var count = 0;  
    for (var i = 0; i < grades.length; i += 1){
        var count = grades[i];
        if (grades[i] == grade) {
            count += 1;
            }
    }
    return count;
}
//Display Table
document.write("<table>")
document.write("<tr><th>Student</th><th>Mark</th><th>Grade</th></tr>");
for (var i = 0; i < students.length; i++){
    document.write("<tr><td>" + students[i] + "</td><td>" + marks[i] + "</td><td>" + getGrade(marks[i]) + "</td></tr>");
}
document.write("</table>");
// Display Bottom
if (students.length > 0){
    document.write("<br />");
    document.write("<br />");
    document.write("Top Student: " + topStudent);
    document.write("<br />");
    document.write("Top Mark: " + topMark);
    document.write("<br />");
    document.write("Bottom Mark: " + botMark);
    document.write("<br />");
    document.write("Number of A Marks: " + getCountOf(grade));
    document.write("<br />");
    document.write("Number of B Marks: " + getCountOf(grade));
    document.write("<br />");
    document.write("Number of C Marks: " + getCountOf(grade));
    document.write("<br />");
    document.write("Number of F Marks: " + getCountOf(grade));
}

我需要A, B, C和F计数功能的帮助,以及我如何显示它任何帮助是受欢迎的显示底部是我尝试和显示每个等级A, B, C和F的计数,但它只显示最进入的标记,所以如果有3个A, 2个B和一个C,它将显示A旁边的所有计数

正如Dan Kuida所提到的,我希望这不是某种作业,但我已经更改了下面的代码。我会给你一个JSFiddle来工作,但是那些网站不同意document.write()函数。下面是需要更改的两个部分。

// A, B, C, and F Count Function
function getCountOf(grade) {
  var count = 0;
  for (var i = 0; i < marks.length; i++) { // Could also use marks.forEach() here
    if (getGrade(marks[i]) === grade) {
      count++;
    }
  }
  return count;
}

您已经保存了标记和转换它们的函数!不需要分数数组。还要注意++操作符而不是+=

// Display Bottom
if (students.length > 0) {
  document.write("<br />");
  document.write("<br />");
  document.write("Top Student: " + topStudent);
  document.write("<br />");
  document.write("Top Mark: " + topMark);
  document.write("<br />");
  document.write("Bottom Mark: " + botMark);
  document.write("<br />");
  document.write("Number of A Marks: " + getCountOf("A"));
  document.write("<br />");
  document.write("Number of B Marks: " + getCountOf("B"));
  document.write("<br />");
  document.write("Number of C Marks: " + getCountOf("C"));
  document.write("<br />");
  document.write("Number of F Marks: " + getCountOf("F"));
}