无法将 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)
]);
流程如下:
- 创建您的 ListItem。
- 创建您的第二个页面并向其中添加项目。
- 创建您的第三个页面并向其中添加项目。
- 将选项设置为您在步骤 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);
我正在尝试使用 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)
]);
流程如下:
- 创建您的 ListItem。
- 创建您的第二个页面并向其中添加项目。
- 创建您的第三个页面并向其中添加项目。
- 将选项设置为您在步骤 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);