随机播放答案属性

时间:2019-04-06 13:37:14

标签: google-apps-script google-form

我必须激活属性才能改变多选类型questoin的问题,但找不到属性。我发现这段代码随机分配了问题,但没有给出答案。

form.setShuffleQuestions(true); 

视觉组件的图像

2 个答案:

答案 0 :(得分:1)

问题跟踪程序:

目前无法实现。考虑在以下功能请求中添加一个星号(在左上方),以供Google优先处理该问题:

部分工作回合:

in this answer中提到的部分解决方法是改组数组创建选项,并使用setChoiceValues()降低数组设置。这种服务器端随机化的缺点是

  • 只能在运行服务器脚本时执行,而不能在客户端打开表单时执行

  • 即使您每分钟都随机进行一次,同时打开表单的用户也可能会看到相同顺序的选项

示例脚本:

const form = FormApp.openById('/*form id*/');
const item = form.addMultipleChoiceItem();
item.setTitle('Car or truck?');
const options = ['Truck', 'Car'];
//Durstenfeld algo
for (let i = options.length - 1; i > 0; i--) {
  let rand = Math.floor(Math.random() * i);
  [options[i], options[rand]] = [options[rand], options[i]];
}
item.setChoiceValues(options);

答案 1 :(得分:0)

我认为您必须自己通过以下方式将选项随机化:

function randomizeArray(A) {
  var iA=A.slice();
  var oA=[];
  for(var i=0;i<A.length;i++) {
    var index=Math.floor(Math.random()*iA.length);
    oA.push(iA[index]);
    iA.splice(index,1); 
  }
  return oA;
}