【发布时间】:2020-05-23 12:37:49
【问题描述】:
我是 GoogleAppsScript 的新手,现在使用 GAS 在 Google 表单和电子表格中进行测验。
我想在重新加载 Google 表单时随机播放 MultipleChoiceItem 中的项目。
下面是我当前脚本的一部分,稍微修改了this code,如下所示。
//vars from spreadsheet
var form = FormApp.openById(id);
var ss = SpreadsheetApp.openById(question_bank_ID);
var text = sheet.getSheetValues(questions[i]+1, 2, 1, 1)[0][0];
var options = sheet.getSheetValues(questions[i]+1, 5, 1, 5)[0];
var ans = sheet2.getSheetValues(questions[i]+1, 5, 1, 5)[0];
//MultipleChoiceItem
var mc = form.addMultipleChoiceItem().setTitle(text);
mc.setPoints(1) // set point
// add choices with isCorrect
while (options[options.length - 1] === "") {
options.pop();
}
mc.setChoices(options.map(function (options, i) {
return mc.createChoice(options, ans[i]);
}
)
)
有人可以告诉我一个解决方案吗?感谢您的帮助!
【问题讨论】:
-
"当谷歌表单被重新加载时" 你的意思是当表单的编辑器版本被重新加载或者当用户刷新他收到的表单 URL 时?第一个是可能的,第二个不是没有第一个。
-
感谢您的回复!我希望实施第二个,以便为每个用户(学生)提供相同的 qiuz,但问题和选择的顺序不同。 setShuffleQuestions() 可能用于随机化问题,但我找不到用于随机播放项目的类似功能。
-
不幸的是,不存在类似的洗牌方法。我用我能想到的最佳解决方法更新了我的答案。
-
我明白了。我会尝试你提到的替代解决方案。非常感谢您的帮助!
-
感谢您抽出宝贵时间回答我的问题。现在,我使用学习管理系统 Moodle 代替谷歌表格,使用来自测验库的随机项目进行测试。再次感谢您的帮助。
标签: google-apps-script google-forms google-classroom