gpt4 book ai didi

javascript - 如何在 for 循环中创建变量?

转载 作者:行者123 更新时间:2023-11-29 18:28:51 24 4
gpt4 key购买 nike

我正在尝试在 for 循环中动态创建变量。错误。我想要做的是:获取 32 个文本字段的值并尝试将这些值存储到一个变量中。

for (i = 1; i<=32;i++){
q[i] = document.getElementById('qty[i]').value;
}

但这会产生:

Error: 'q' is undefined

最佳答案

var q = [];

for (var i = 0; i < 32; i++){
q[i] = document.getElementById('qty[i]').value;
}

q 将包含您的所有值。您应该在 for 循环之外声明数组 q,因为这是公认的最佳实践。如果您根本不声明 q,它将成为一个隐含的全局变量,您可能希望避免这种情况。如果您在循环内声明 q,它将在每次迭代时被覆盖,因此您需要确保在循环外声明它。

另外,你会注意到我改变了你的 for 循环:

for(i = 1; i <= 32; i++) {

对此:

for (var i = 0; i < 32; i++){

您正在从 1 循环到 32;这是不正确的,因为 Javascript 中的数组是从 0 开始索引的;换句话说,他们从零开始计数。由于是这种情况,您的 for 循环也需要从零开始计数,并在 31 结束。另外,您需要在 for 中声明 var i环形;否则,它将成为一个全局变量。


现在,如果您真的不想在 for 循环之外声明 q,您可以按照 Kirian 演示的那样做;即使用if语句判断q是否已经声明,如果没有声明。看起来像这样:

for (var i = 0; i < 32; i++){
if(!q) q = [];
q[i] = document.getElementById('qty[i]').value;
}

另外请注意,如果 qty 在您的代码中是一个数组,那么您可能需要这样:

var q = [];

for (var i = 0; i < 32; i++){
q[i] = document.getElementById(qty[i]).value;
}

如果 qty 是一组 ID 的一部分,看起来像 qty[1]、qty[2]、qty[3]...,那么您想要这个:

var q = [];

for (var i = 0; i < 32; i++){
q[i] = document.getElementById('qty[' + i + ']').value;
}

关于javascript - 如何在 for 循环中创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10325651/

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