【问题标题】:Is there a way to capture the value of a variable in each iteration of a for loop in javascript?有没有办法在javascript中的for循环的每次迭代中捕获变量的值?
【发布时间】:2013-09-19 09:10:37
【问题描述】:

我是一名学习 javascript 的学生,现在才第 3 周,所以我不熟悉任何高级主题或代码。这是一个分级作业,所以我不是在寻找答案,但任何帮助或建议来完成这个都会很棒。我被困了几个小时,我什至不知道该往哪个方向前进。

我需要做的是使用 for 循环来获取用户可以在 html 页面中输入的最多 3 个不同 id 标记的值。它必须在 for 循环中完成,并使用计数器顺序更改 id 的名称。

我能够做到这一点,但是每次循环运行时,它都会抓取数据,当然还会将变量设置为循环的最新迭代。

有没有办法捕获每个循环中的返回值并存储它以供循环运行后使用?我应该能够生成 3 个单独的值,然后将它们一起显示。

编辑:这是 HTML:

<!DOCTYPE html>

<body>
  <h1>Assignment 2</h1>
  <p>
    Enter First Name:
    <input id="firstname" type="text">
    <span id="firstname_error">*</span>
  </p>
  <p>
    Enter Last Name:
    <input id="lastname" type="text">
    <span id="lastname_error">*</span>
  </p>
  <p>
    How Many Pets do you have? (0-3):
    <input id="numpets" maxlength="1" size="1" type="text">
    <span id="numpets_error">*</span>
  </p>
  <p>
    List your Pet's names:
    <input id="pet1" type="text">
    <input id="pet2" type="text">
    <input id="pet3" type="text">
  </p>
  <p>
     <input onclick="processInfo()" type="button" value="Submit Information">
  </p>
  <p id="message">*</p>
</body>
</html>

【问题讨论】:

  • 取决于 HTML。请发布一个sn-p。
  • 您可以将每次迭代的值存储在另一个变量中,例如字符串或数组。
  • 感谢您的快速回复。我还没有了解数组,但是当我将它存储为字符串时,每次循环运行时它都会被覆盖。所以我成功地获取了这个值,但是如果没有在下一个循环中被覆盖就无法存储它。我怎样才能避免这种情况?
  • 我的教授提供了这个。

    作业 2

    输入名字: *

    输入姓氏:*

    如何你有很多宠物吗? (0-3): *

    列表你宠物的名字:

    *

  • 如果您要使用字符串,首先创建一个空字符串:var result=''; 然后附加结果,如result+= 'piece of string to add' ;(这意味着:result=result+'piece of string to add';)。如果您使用唯一的分隔字符,您也可以将其拆分为同一个字符(到一个数组)。但是,使用数组可能会更好(并且是一个非常有用的概念)!

标签: javascript html variables loops for-loop


【解决方案1】:

您可以使用单独的变量来累积存储每次迭代的值。确保在循环之前定义此变量,并在每次迭代时将数据添加到变量中,而不是覆盖它。

例如使用string 变量:

var str = '';
for (i=0; i < 3; i++) {
    str += i+' '; // Note the usage of the += operator to append the value
}
 //
console.log(str);

或者使用array 变量:

var arr = [];
for (i=0; i < 3; i++) {
    for (i=0; i < 3; i++) {
    arr.push(i);
}
 //
console.log(arr.toString());

请注意,为了示例,我们只是存储循环计数器的值i

【讨论】:

  • 谢谢!我会试一试,看起来这就是我想要做的!
  • @user2780236 没问题。按照上面的 cmets 更新答案,提供更多相关信息。
猜你喜欢
  • 2022-11-17
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
相关资源
最近更新 更多