所以我们的老师给了我们作业。我们应该编写一个程序,询问用户要输入多少个数字,然后要求他们多次输入一个数字,直到获得用户想要提供的所有数字为止。然后,程序应显示或输出用户以前输入或输入的数字。 这是我的方法:
<html>
<script>
amount = prompt("How many numbers do you wish to input?");
amount1 = amount - 1;
for (i = 0; i <= amount1; i++) {
a = i + 1;
var input = [];
input[i] = prompt("Please enter the " + a + ". number:");
}
alert(input.toString());
</script>
</html>
但是,输出不是我期望的那样。假设我们输入5个数字,1
,2
,3
,4
和5
,那么最终结果将显示,,,,5
如果我没记错的话,这意味着除最后一个元素外,所有元素都是undefined
。有谁知道为什么会发生这种情况以及如何避免呢?
答案 0 :(得分:1)
只需将var input = [];
变量初始化移出for
循环,就可以了。
为什么它对您不起作用:每次使用此行var input = [];
重置输入数组的值时,这就是为什么数组中只有最后一个元素可见的原因:(,所以当您退出循环时,它将按预期工作。
amount = prompt("How many numbers do you wish to input?");
amount1 = amount - 1;
var input = [];
for (i = 0; i <= amount1; i++) {
a = i + 1;
input[i] = prompt("Please enter the " + a + ". number:");
}
alert(input.toString());
答案 1 :(得分:0)
<select name="animationDelayTime">
<option value="0.1">0.1s</option>
<option value="0.2">0.2s</option>
<option value="0.3">0.3s</option>
<option value="0.4">0.4s</option>
<option value="0.5">0.5s</option>
<option value="0.6">0.6s</option>
<option value="0.7">0.7s</option>
<option value="0.8">0.8s</option>
<option value="0.9">0.9s</option>
<option value="1.0">1.0s</option>
<option value="1.1">1.1s</option>
<option value="1.2">1.2s</option>
<option value="1.3">1.3s</option>
</select>