使用setchoicevalues将数组元素设置为选项

时间:2016-05-23 06:52:16

标签: google-apps-script google-form multiple-choice

这是我的第一篇文章! :)

我正在尝试执行以下操作:

有一个事件,我必须在人们可以加入的时间内提供可用时间,并且每个选项都可以加入人数。 例如:

5/5 11:00-12:00 available 2 places.
5/5 12:00-13:00 full (10/10 joined)
5/5 13:00-14:00 available 6 places...

我决定用这个创建一个电子表格: 一行:事件日期时间; B排:人加入; C行:限制。

当某人发送表单时,B行会增加1,并且会使用新值更新选项。

Before:
5/5 11:00-12:00 available 2 places.
5/5 12:00-13:00 full (10/10 joined)
**5/5 13:00-14:00 available 6 places.**

Mr A joins to 3rd course.

After

5/5 11:00-12:00 available 2 places.
5/5 12:00-13:00 full (10/10 joined)
**5/5 13:00-14:00 available 5 places.**

发生这种情况时,选项会更新,执行以下操作:

//Code what updates the number in the sheet//
//Now we have to re-set the options//
var range=sheet.getRange("A1:C20"); //Take the new values
var options=[];
for (var i=0; i<range.length; i++)
if (conditions) options.push(range[i][0]); //charges the options

最后设置输出:

    var multiplechoice=form.getItems(FormApp.ItemType.MULTIPLE_CHOICE[0].
asMultipleChoiceItem().setChoiceValues([options[0],options[1],...,options[19]]);

代码工作属性,但问题是最后一行:在灵活性方面不方便。在回收代码的情况下,我需要添加更多选项来重写代码。

我想这样做:

    var multiplechoice=form.getItems(FormApp.ItemType.MULTIPLE_CHOICE)[0].
asMultipleChoiceItem().setChoiceValues([options]);

我试着这样做(.setChoiceValues([options]))但结果只是一个选项中的所有数组。我需要脚本将选项的每个元素识别为不同的元素。

但我不知道道路。 Y意识到有一个FormApp功能对我有帮助,但经过大量搜索后我找不到解决方案。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

删除options周围的方括号,因此它看起来像setChoiceValues(options),它应该有用。

setChoiceValues()方法需要一维的字符串数组,但是使用方括号,你会给它一个二维数组,因为options本身就是一个数组。