Не удается добавить разрыв страницы в скрипте Google к элементам, созданным с помощью цикла for - PullRequest
1 голос
/ 05 ноября 2019

Я пытаюсь создать форму Google, используя скрипт Google. Я сделал простой цикл for, чтобы создать два элемента, которые будут заполнять выпадающий список. Если человек выбирает пункт 1, он переходит на страницу два, а пункт 2 ведет на страницу три. Моя проблема в том, что я получаю синтаксическую ошибку в строке 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);

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Вам действительно нужен цикл 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. Установите варианты для ListItem , созданный на шаге 1.

Использование цикла 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);
0 голосов
/ 05 ноября 2019

Попробуйте так:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...