【发布时间】:2020-09-24 17:53:02
【问题描述】:
我正在尝试显示一系列测试分数,在它们之上显示这些分数的平均值。这是我正在使用的代码:
var clickDisplayResults = function () {
$("results").value = "";
function calculate(scores) {
var i = 0, sum = 0, len = scores.length;
while (i < len) {
sum = sum + scores[i++];
};
return sum / len;
};
var average = calculate(scores);
$("results").value = "The average score is: " + parseInt(average) + "\n";
$("results").value += "High Score: " + Math.max.apply(null, scores) + "\n";
$("results").value += "Low Score: " + Math.min.apply(null, scores) + "\n" + "\n";
for (var i = 0; i < names.length; i++) {
$("results").value += names[i] + ", " + scores[i] + "\n";
};
但是,当我这样做时,在添加新分数后,我得到了一个荒谬范围内的平均值。
这里是加分码:
var clickAddScore = function () {
if ( $("name").value == "" || $("score").value < 0 || $("score").value > 100 || isNaN($("score").value) ) {
alert("Please enter a valid name and score");
$("name").value = "";
$("score").value = "";
return false;
};
else {
names[names.length] = $("name").value;
scores[scores.length] = $("score").value;
$("name").value = "";
$("score").value = "";
};
};
任何建议将不胜感激。
【问题讨论】:
-
value是字符串,不是数字,需要转成数字
-
仅供参考:一遍又一遍地执行
$("name").value对性能不利。将其存储到变量中。
标签: javascript jquery arrays average