Я использую Google Apps Script для создания форм Google из листа.Вопросы в строках и варианты вопросов в столбцах.
Вот ссылка на страницу Google , если необходимо.
Этоявляется простой задачей при использовании .setChoiceValues(values)
if (questionType == 'CHOICE') {
var choicesForQuestion = [];
for (var j = 4; j < numberColumns; j++)
if (data[i][j] != "")
choicesForQuestion.push(data[i][j]);
form.addMultipleChoiceItem()
.setChoiceValues(choicesForQuestion);
}
Однако, когда я пытаюсь использовать .createChoice(value, isCorrect)
, параметры вызывают для value
бытьстрока и isCorrect
должны быть логическими.
Пример без цикла выглядит так:
var item = FormApp.getActiveForm().addCheckboxItem();
item.setTitle(data[3][1]);
// Set options and correct answers
item.setChoices([
item.createChoice("chocolate", true),
item.createChoice("vanilla", true),
item.createChoice("rum raisin", false),
item.createChoice("strawberry", true),
item.createChoice("mint", false)
]);
Не могу понять, как добавить цикл.Прочитав другие посты, я попробовал следующее:
if (questionType == 'CHOICE') {
var questionInfo = [];
for (var j = optionsCol; j < maxOptions + 1; j++)
if (data[i][j] != "")
questionInfo.push( form.createChoice(data[i][j], data[i][j + maxOptions]) );
form.addMultipleChoiceItem()
.setChoices(questionInfo);
}
optionsCol
- это первый столбец вопросов. maxOptions
- это количество параметров, разрешенных таблицей (в настоящее время 5).Информация isCorrect - 5 столбцов справа.
Однако это не работает, поскольку массив questionsInfo
пуст.
Каков наилучший способ сделать это?