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

Can't add page break in google script to items created via for-loop

我正在尝试使用 google 脚本创建 google 表单。我做了一个简单的 for 循环来创建两个将填充下拉列表的项目。如果一个人选择第 1 项,它会转到第 2 页,第 2 项会转到第 3 页。我的问题是我在第 14 行 尝试创建 if 语句时遇到 语法错误。

我试过删除 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);

这样试试:

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);

你真的需要 "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);