Я хотел бы создать электронную таблицу, в которой я могу указать ответы на заданный вопрос.
Я бы хотел настроить свою викторину так, чтобы у меня не было жесткого кода, ответы на который верныи которые неверны.На данный момент все, что делает этот код, - это хранить вопросы и варианты в переменной и записывать их в форму Google.В настоящее время нет функциональности, чтобы проверить, является ли ответ, выбранный пользователем, правильным.Я думаю, что ниже приведена часть кода.В настоящий момент он берет вопрос и варианты из электронной таблицы, хранящиеся в переменной, и записывает вопрос и возможные варианты в форму Google.Как бы я пошел по кругу через опции и сравнить каждую переменную с именем answer?Если это то же самое (опция == ответ), укажите эту конкретную опцию в качестве ответа, а остальные - нет.
Я понимаю, что мне нужно было бы установить форму в качестве теста.
//Add questions and options to form
for (qq=0;qq<numOfQs-1;qq++){
var formQ = form.addMultipleChoiceItem();
formQ.setTitle(questions[0][qq]);
formQ.setChoiceValues(allOptions[qq]);
Если это поможет, ниже приведен весь код, который я скопировал.
function createFormFromData() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
//Get data, number of questions and options info
var data = sh.getDataRange().getValues();
var numOfOptions = data.length-3;
var numOfQs = data[0].length;
//Get questions
var questions = sh.getRange(2, 2, 1, numOfQs).getValues();
//Get options and store in an array
var allOptions = [];
for (q=2;q<=numOfQs;q++){
var options = sh.getRange(3, q, numOfOptions, 1).getValues();
allOptions.push(options);
}
//Create the form
var form = FormApp.create("New form");
//Add questions and options to form
for (qq=0;qq<numOfQs-1;qq++){
var formQ =
Спасибо за вашу помощь заранее.
Обновление # 1
Поэтому я попытался продолжить свои усилия по решению этой проблемы.Я подумал, что могу попробовать комбинированный цикл for и if.
function makeMultipleQ(data) {
var question = data [2]
var questionNumber = data [0]
var answer = data[9]
Logger.log(answer)
var item = form.addMultipleChoiceItem()
item.setTitle(questionNumber + '. ' + question)
var trimmedData = data.filter(function(str) {
return /\S/.test(str)
})
var slicedData = trimmedData.slice(3,trimmedData.length-1)
var options = []
for (var i = 0; i<slicedData.length;i++) {
Logger.log(i)
if (slicedData[i] == answer) {
Logger.log('Yes')
Logger.log(slicedData[i])
options.push(item.createChoice(slicedData[i], true))
}
else {
Logger.log('No')
}
}
Я изменил макет электронной таблицы, чтобы он соответствовал различным типам вопросов в форме Google.Оператор if в настоящий момент говорит «да» в индексе ответа, если он присутствует в цикле;однако я не могу установить правильный ответ, если это произойдет.Аналогично, если ответ отсутствует в массиве, его следует считать неверным.
Любая помощь будет принята с благодарностью.
Спасибо!Вот как выглядит моя таблица сейчас.(https://i.stack.imgur.com/xhFSN.jpg)