如何用App Script通过数组循环创建带单选按钮的表单问题
解决Google Apps Script生成带索引标题的单选表单问题
刚上手App Script就能想到用数组和循环批量生成表单问题,这个思路非常棒!你的代码目前有几个小问题:循环语法不完整、缺少表单实例创建,还有setTitle(item)里的item没有正确关联数组元素。下面我帮你修正并优化代码,同时拆解关键步骤:
方案1:使用预定义的问题数组
如果已经提前把50个问题整理在数组里,可以用这个写法:
// 创建新表单(若要操作已有表单,改用FormApp.openById("你的表单ID")) var form = FormApp.create("批量单选问题表单"); // 你的问题数组,示例写3个,可扩展到50个 var items = ["Q1", "Q2", "Q3", /* ... 补充到Q50 */]; var choices = ["Successful", "Unsuccessful"]; // 修正循环语法,遍历数组生成每个问题 for (var i = 0; i < items.length; i++) { form.addMultipleChoiceItem() .setTitle(items[i]) // 通过索引i获取数组中对应的问题标题 .setChoiceValues(choices) .setRequired(true); }
方案2:动态生成50个问题标题(更高效)
如果你的问题是规律的Q1到Q50,完全不用手动写数组,直接在循环里动态生成标题即可:
var form = FormApp.create("批量单选问题表单"); var choices = ["Successful", "Unsuccessful"]; var totalQuestions = 50; // 总问题数 for (var i = 0; i < totalQuestions; i++) { var questionTitle = "Q" + (i + 1); // 动态拼接Q1、Q2...Q50 form.addMultipleChoiceItem() .setTitle(questionTitle) .setChoiceValues(choices) .setRequired(true); }
关键修正点说明
- 表单实例创建:必须先通过
FormApp.create()创建新表单,或者FormApp.openById()打开已有表单,否则无法调用addMultipleChoiceItem()方法添加问题。 - 循环语法修正:原代码里
for (i = 0; i < arrayLength; i++ {少了闭合的),正确写法是for (var i = 0; i < 数组长度; i++) {。 - 标题引用:
setTitle()需要传入数组对应索引的元素(items[i]),或者动态生成的标题字符串,而不是未定义的item变量。 - 变量声明:循环里的
i用var(或ES6的let)声明,避免全局变量污染。
运行代码后,你就能得到一个包含50个单选问题的表单,每个问题都有「Successful」和「Unsuccessful」两个选项,且均为必填项。
内容的提问来源于stack exchange,提问作者r3g3x
相关产品推荐
相关产品推荐

