【发布时间】:2020-10-29 00:53:23
【问题描述】:
我正在尝试使用 continue 来省略 test3 被使用的总平均值。
我不确定我在这里做错了什么。目标是使用除test3 文本框中输入的数字之外的所有数组。
我正在尝试收集所有数组的总和(不包括 test3),以便在我的代码末尾得出一个平均值。
<html>
<head>
<title>Chapter 3 Activity</title>
</head>
<body>
<h1>Test Score Average</h1>
<p>Insert your 5 test scores in the boxes below</p>
<form action="">
Test 1:
<input type="text" name="test1" id=t1>
<br> Test 2:
<input type="text" name="test2" id=t2>
<br> Test 3:
<input type="text" name="test3" id=t3>
<br> Test 4:
<input type="text" name="test4" id=t4>
<br> Test 5:
<input type="text" name="test5" id=t5>
<br>
<input type="button" value="Calculate Average" onclick="calculateFunction()">
</form>
<script type="text/javascript">
function calculateFunction() {
var test1 = document.getElementById("t1").value;
var test2 = document.getElementById("t2").value;
var test3 = document.getElementById("t3").value;
var test4 = document.getElementById("t4").value;
var test5 = document.getElementById("t5").value;
var nums = [test1, test2, test3, test4, test5];
var totalSum = 0;
for (var i = 0; i < nums.length; i++) {
totalSum += parseInt(nums[i]);
if (nums[i] === test3) {
continue;
}
}
var average = totalSum / nums.length;
document.write("Test score average is " + average);
}
</script>
</body>
</html>
【问题讨论】:
-
为什么不直接使用
var nums = [test1, test2, test4, test5];? -
你需要把条件放在平均之前。
-
你把测试放在加值之后,测试应该在前面
-
我怀疑这是因为 test3 包含一个字符串,而不是一个数字。在这种情况下,
if (nums[i] == test3)或if (nums[i] === parseInt(test3, 10))都可以解决问题。 -
您的方法的问题是,如果任何测试的分数与 test3 相同,它们都会被跳过。
标签: javascript arrays loops for-loop continue