You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在while循环中动态遍历不同名称的属性获取数据?

嘿,这个需求完全可以实现!咱们先把你代码里的小问题理顺,再给出能正常运行的版本~

首先,你的while循环语法有点问题:JavaScript里while的条件是括号里的布尔表达式,你写的while (i = 0, i <= 10)用了逗号运算符,会把最后一个值作为判断条件,而且i的初始化位置不对,很容易导致无限循环或者采集错误。

然后重点解决你关心的动态拼接输入框名称的问题——这其实非常简单,直接用字符串拼接就行:"Name" + i,每次循环i递增,就能自动生成Name1、Name2...Name10这些目标名称。

下面是修正后的完整代码,我加了注释帮你理解每一步:

onEvent("next", "click", function(getData) {
  // 初始化存储结果的数组,每次点击都重新创建,避免旧数据干扰
  let inputContents = [];
  // 循环变量从1开始,因为你的输入框是Name1到Name10
  let i = 1;

  // while循环:当i小于等于10时继续执行
  while (i <= 10) {
    // 动态拼接当前要采集的输入框名称
    let targetInput = "Name" + i;
    // 获取该输入框的text属性值
    let inputText = getProperty(targetInput, "text");
    // 把值存入数组(push方法自动加到数组末尾,不用手动管索引)
    inputContents.push(inputText);
    // 输出当前采集的内容,方便调试
    console.log(`第${i}个输入框内容:${inputText}`);
    
    // 循环变量自增,不然会无限循环!
    i++;
  }

  // 所有输入框采集完成后,可以在这里处理整个数组
  console.log("全部采集内容:", inputContents);
});

几个关键细节要注意:

  • 如果希望每次点击"next"按钮都重新采集一遍所有输入框,就把数组和i的初始化放在事件函数内部,这样每次点击都会重置状态。
  • 要确保你的输入框ID/名称确实是Name1到Name10,拼写完全一致,不然getProperty会找不到目标元素。
  • 数组存储用push()是最省心的方式,如果一定要让数组索引和输入框的数字对应(比如索引1存Name1的内容),可以改成inputContents[i] = inputText,不过数组默认从0开始索引,这种情况记得提前给数组预留空间或者处理好索引逻辑。

内容的提问来源于stack exchange,提问作者Yotam Fogel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:31:53