gpt4 book ai didi

Javascript 数组未填充

转载 作者:行者123 更新时间:2023-12-02 17:07:09 24 4
gpt4 key购买 nike

所以我正在尝试自学 HTML 和 Jscript,但我一生都无法弄清楚我在这段代码中做错了什么,它是一个下拉问题列表,询问用户他们喜欢什么水果,并且他们要求做出 9 个答案,所以这个脚本是捕获这些答案并将它们存储在一个数组中,但是当它在循环之外中断时,最后一个警报不会显示,所以我可以看到数组实际上并没有被填充。

我使用警报进行错误检查:)

 <script>
function submitInfo(passed){
var Fruit = [];
var myForm = passed+"Form";

//alert("here start"+" "+document.getElementById(myForm).length+" "+myForm);
for (var i = 0; i < document.getElementById(myForm).length; i++) {
//alert("in loop");
var myFruit = passed+"Input"+i;
//alert(myFruit+" "+document.getElementById(myFruit).value);

Fruit.push(document.getElementById(myFruit).value);
// var Fruit[i] = document.getElementById(myFruit).value;
alert(Fruit[i]);
}
alert(Fruit[i]);
}
</script>

提前感谢您的帮助,不胜感激

最佳答案

数组已正确填充,只是您没有正确测试它。

原因是因为循环之后,i 将等于 document.getElementById(myForm).length。因此,当您使用它访问 Fruit 数组时,您正在访问尚未填充的索引。您可以通过在循环后执行以下操作来证明这一点:

alert(i);

例如,如果 document.getElementById(myForm).length5。您的循环将运行 0..4,但在决定中断循环之前它仍会增加到 5(它必须增加它以便可以评估条件) 。此时,您的数组中将有 5 个项目(索引 0-4)。然后,当您调用最后一个警报时,i = 5,但 Fruit[5] 不存在。

如果您要将最后一个警报(循环后)更改为 Fruit[0],它应该显示第一个项目。您还可以执行 console.log(Fruit) 并检查控制台以获取数组的完整内容。

This may help to demonstrate it better.

关于Javascript 数组未填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com