【问题标题】:Javascript: Average Grade and Letter Grade of StudentsJavascript:学生的平均成绩和字母成绩
【发布时间】:2019-10-04 21:17:42
【问题描述】:

我正在查看这段 Javascript 代码来计算一组学生的平均成绩,然后根据结果决定应该分配哪个字母成绩。我想知道您将如何在 HTML 中显示这两个结果?我玩过并尝试了一些东西,但似乎没有任何效果。我也是 Javascript 新手,所以解决方案很可能非常简单,但我不知道该怎么做。

var students = [80, 77, 88, 95, 68];

var Avgmarks = 0;

for (var i = 0; i < students.length; i++) {
  Avgmarks += students[i][1];
  var avg = (Avgmarks / students.length);
}

console.log("Average grade: " + (Avgmarks) / students.length);

if (avg < 60) {
  console.log("Grade : F");
} else if (avg < 70) {
  console.log("Grade : D");
} else if (avg < 80) {
  console.log("Grade : C");
} else if (avg < 90) {
  console.log("Grade : B");
} else if (avg < 100) {
  console.log("Grade : A");
}

编辑:2019 年 9 月 10 日

我已将我的代码修改为:

let students = [80, 77, 88, 95, 68];

let avgMarks = 0;

for (let i = 0; i < students.length; i++) {
  avgMarks += students[i];
}

let avg = avgMarks / students.length;

if (avg <= 60) {
  document.write("Grade : F");
} 
else if (avg <= 70) {
  document.write("Grade : D");
} 
else if (avg <= 80) {
  document.write("Grade : C");
}
else if (avg <= 90) {
  document.write("Grade : B");
} else {
  document.write("Grade : A");
}

document.getElementById("studentAvgGrade").innerHTML = avg;
<!DOCTYPE html>

<html lang="en">

<head>
	<meta charset="utf-8">
	<title>Average Student Grade and Letter Grade</title>
</head>

<body>
	
   <div id="studentAvgGrade"></div>

</body>

</html>

我的代码现在可以工作了。谢谢大家的帮助。

不过,我想知道这是否是使用纯 Javascript 解决任务的最佳方法,还是有更好的方法?

【问题讨论】:

  • 选择一个元素并将其文本替换为等级?
  • 你应该在循环结束后设置avg,而不是每次都设置。
  • 你应该在console.log()调用中使用它,而不是在那里重新计算。
  • 我不明白这个问题。只需将对console.log() 的调用替换为document.getElementById(something).innerText = ...
  • 显示您玩过的游戏,以便我们帮助您解决问题。我们不会为你写的。

标签: javascript html arrays for-loop if-statement


【解决方案1】:

您可以使用

设置元素
const element = document.querySelector(YOUR HTML ELEMENT SELECTOR);

然后在每个 if 语句中

element.innerText = grade

【讨论】:

    【解决方案2】:

    首先为等级声明一个新变量: 让等级=“” 那么在你的 if/else 语句变量中,grade 会为每个条件分配一个新值。

    在您的 html 中选择您希望它出现的元素,然后将变量grade 分配为其内部html。:

    <h1 id='grading'></h1> 
    

    在你的 js 中:

    let grade = ""
    if (avg < 60){
          console.log("Grade : F");   
          grade = "F"   
          } 
        else if (avg < 70) {
                console.log("Grade : D"); 
                grade = "D"
                  } 
        else if (avg < 80) 
             {
                console.log("Grade : C"); 
                grade = "C"
        } else if (avg < 90) {
                console.log("Grade : B");
                grade = "B" 
        } else if (avg < 100) {
                console.log("Grade : A"); 
                grade = "A"
    }
    
    const gradeToDisplay = document.getElementById("grading")
    grading.innerHTML = grade 
    

    【讨论】:

    • 也可以设置为innerText
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    相关资源
    最近更新 更多