无法将Google脚本中的分页符添加到通过for循环创建的项目中

时间:2019-11-05 15:01:54

标签: javascript loops google-apps-script google-form

我正在尝试使用Google脚本创建Google表单。我做了一个简单的for循环,以创建两个将填充下拉列表的项目。如果某人选择项目1,则转到第二页,项目2进入第三页。我的问题是,尝试创建if语句时,在第14行出现了语法错误

我尝试删除if语句,它给了我同样的错误。我认为将createChoice项推入数组会导致这种情况。

var targetNumber = form.addListItem();
var arr = [];
targetNumber.setTitle('How many targets?')
for (var i = 1; i <= 2; i++) {
  arr.push(targetNumber.createChoice(i));
  if(i == 1) {
    form.addPageBreakItem().setTitle('Page2');
  } else {
    form.addPageBreakItem().setTitle('Page3');
  }
}
targetNumber.setChoices(arr);

2 个答案:

答案 0 :(得分:0)

尝试一下:

var targetNumber = form.addListItem();
var arr = [];
targetNumber.setTitle('How many targets?')
for (var i=1;i<3;i++){
  arr.push(targetNumber.createChoice(i));
    if(i==1){
      form.addPageBreakItem().setTitle('Page2');
    }else{
      form.addPageBreakItem().setTitle('Page3');
    }
}
targetNumber.setChoices(arr);

答案 1 :(得分:0)

您真的需要一个“ for”循环吗?如果您有重复多次的操作,通常最好使用它们。但是,如果这样做的次数很少,建议您不要使用它们,因为这样可以使代码更简洁。见下文:

var targetNumber = form.addListItem().setTitle('How many targets?');
var page2 = form.addPageBreakItem().setTitle('Page 2');
// Add items to page2
var page3 = form.addPageBreakItem().setTitle('Page 3');
// Add items to page3
targetNumber.setChoices([
  targetNumber.createChoice(1, page2),
  targetNumber.createChoice(2, page3)
]);

流程如下:

  1. 创建您的 ListItem
  2. 创建第二个页面并向其中添加项目。
  3. 创建第三页并在其中添加项目。
  4. 将选项设置为您在步骤1中创建的 ListItem

使用for循环

var targetNumber = form.addListItem().setTitle('How many targets?');
// Create pages
var pages = [];
for (var i=0; i<NUMBER_OF_PAGES; i++) {
  var page = form.addPageBreakItem().setTitle('Page ' + (i+2));
  // Add other items to the page
}
var choices = [];
for (var i=0; i<NUMBER_OF_PAGES; i++) {
  choices.push(targetNumber.createChoice(i+1, pages[i]));
}
targetNumber.setChoices(choices);