我希望能够让用户输入多个成绩,然后让 Javascript 计算输入的这些成绩的平均值。当用户输入完成绩后,他们可以点击取消并关闭提示框,如果他们根本没有输入任何成绩(默认为 0),那么程序会显示没有输入成绩。
我是新手!我正在我的大学上 javascript 类(class),这有点令人困惑,因为老师不教!我们只需要引用 W3schools,根本没有列出这些东西!
另一种解释: “开发一个程序,允许教师输入任意数量的成绩,进行平均计算,然后以符合语法的句子显示结果。如果没有输入成绩,该程序还必须告诉用户。你需要使用循环和“if else”语句。一定要声明所有变量并测试被零除的可能性。”
<script type = "text/javascript">
var gradeCounter = 0,
gradeValue = 0,
total = 0,
average, grade;
var sum = 0;
var i = 0;
while (gradeValue != -1 && gradeValue <= 100) {
//Prompt the user
grade = prompt("Enter Grades, -1 to Quit:", "0");
//Parse the prompt result to a int
sum += parseInt(grade);
i++;
if (i >= 0 && grade != null) {
document.getElementById("average").innerHTML = "The average of the grades you've entered are " + sum / i + ".";
} else {
document.getElementById("error").innerHTML = "There were no grades entered";
}
} </script>
再次感谢!
最佳答案
这没问题
已更新
再次更新
JSFIDDLE
// note: the dom must be ready before execution
var btn = document.querySelector('button'),
res = document.getElementById('average');
btn.addEventListener('click', function(e) {
var val = prompt('Enter comma delimited grades to average');
val = val.length ? val.replace(/\s/g, '').split(',') : '';
var count = val.length || 0; // no 0 division
if (!count) {
res.innerHTML = 'you must enter comma delimited numbers to average';
return;
} else {
var average = val.reduce(function(a, b) { // is a loop
return +a + +b;
});
res.innerHTML = (average /= count).toFixed(1);
}
});
html
<button id="avgBtn">Prompt</button>
<p>Average: <span id="average"></span></p>
关于Javascript 平均计算器(用户输入的多个值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27370076/