代码之家  ›  专栏  ›  技术社区  ›  lulumann

getChoices未获取选项

  •  1
  • lulumann  · 技术社区  · 7 年前

    我很快就得到了一个关于我试图在谷歌应用程序脚本编辑器中编写的一个小脚本的问题。

    我创建了一个小的谷歌表单文档,其中包含一些基本的复选框项目问题和多项选择。现在我试着阅读问题和选择(而不是答案)。我从下面的脚本中得到的只是“项目,项目,项目…”还有“选择,选择,选择……”。

    function test(){
      var ss = SpreadsheetApp.getActive();
      var formUrl = ss.getFormUrl();
      var form = FormApp.openByUrl(formUrl);
      var ques = form.getItems();
      for (var i = 0; i < ques.length; i++){  
      var sques = ques[i].getTitle();
      var choices = ques[i].asCheckboxItem().getChoices();
     Logger.log("All Questions: "+ques+", specific Question: "+sques+", Possible answers to Question "+i+": "+choices+"");
    }} 
    

    文档中说,“getChoices”获取项目的所有选项。在我的例子中,它只给出了正确数量的“选择”(即选择,选择2个可能的选择),但没有给出文本。

    有人能给我指出正确的方向吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Brian    7 年前

    .getChoices() returns an array of the choices 对于项目。您需要在另一个循环中迭代。您可以将标题推入另一个数组(如下)或写出每个选项。

    function test() {
      var choicesArray = [];
      var ss = SpreadsheetApp.getActive();
      var formUrl = ss.getFormUrl();
      var form = FormApp.openByUrl(formUrl);
      var ques = form.getItems();
    
      for (var i = 0; i < ques.length; i++){  
        var sques = ques[i].getTitle();
        var choices = ques[i].asCheckboxItem().getChoices(); // an array of choices
    
        choices.forEach(function(a) {
          choicesArray.push(a.getValue()); // push each choice value into a new array
        });
    
        Logger.log("All Questions: "+ques+", specific Question: "+sques+", 
        Possible answers to Question "+i+": "+choicesArray+"");
      }
    }