Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript google.script.run返回未定义的数组_Javascript_Arrays_Google Apps Script_Web Applications - Fatal编程技术网

Javascript google.script.run返回未定义的数组

Javascript google.script.run返回未定义的数组,javascript,arrays,google-apps-script,web-applications,Javascript,Arrays,Google Apps Script,Web Applications,我正在尝试从服务器端函数getPrepList()返回数组。从客户端访问时,“prepList[]”返回“undefined”。这只是完整code.gs文件的一个片段 //// function getPrepList(){ var sheet = SpreadsheetApp.getActiveSpreadsheet(); var doPrepRange = sheet.getRange('F:F'); var itemNameRange = sheet.getRange('

我正在尝试从服务器端函数getPrepList()返回数组。从客户端访问时,“prepList[]”返回“undefined”。这只是完整code.gs文件的一个片段

////

function getPrepList(){
   var sheet = SpreadsheetApp.getActiveSpreadsheet();
   var doPrepRange = sheet.getRange('F:F');
   var itemNameRange = sheet.getRange('A:A');
   var prepList = new Array();

    for(var i = 1; i < getFirstEmptyRow(); i++){
      if(doPrepRange.getCell(i,1).getValue() == true){
        prepList.push(itemNameRange.getCell(i, 1).getValue());
      };
    };
    Logger.log(prepList);
   return(prepList);
 };


function doGet(){
  return HtmlService.createHtmlOutputFromFile('index');
}; 
函数getPrepList(){ var sheet=SpreadsheetApp.getActiveSpreadsheet(); var doPrepRange=sheet.getRange('F:F'); var itemNameRange=sheet.getRange('A:A'); var prepList=新数组(); 对于(var i=1;i ////

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h1><div align="center">PREP LIST MAKER v 2.0</h1></div>

    <button align="center" onClick="createCountSheet()">Nightly Count Sheet</button><br />
    <button align="center" onClick="showPrepList()">Get Prep List</button><br />

    <script>

    console.info("before execution");
    function createCountSheet(){
      google.script.run
        .generateCountSheet();
     };

     google.script.run 
       .withSuccessHandler(showPrepList)
       .getPrepList();

    function showPrepList(prepList){
      console.log(prepList);
    };

     </script>
  </body>
</html>

准备列表生成器v2.0
夜间盘点表
获取准备列表
控制台信息(“执行前”); 函数createCountSheet(){ google.script.run .generateCountSheet(); }; google.script.run .withSuccessHandler(showPrepList) .getPrepList(); 函数showPrepList(prepList){ console.log(prepList); };
试着这样做:

function getPrepList(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();;
  var rg=sh.getDataRange();
  var vals=rg.getValues();
  var prepList=[];
  for(var i=1;i<vals.length;i++){
    if(vals[i][5]){
      prepList.push(vals[i][0]);
    }
  }
  return prepList;
}
函数getPrepList(){ var ss=SpreadsheetApp.getActive(); var sh=ss.getActiveSheet();; var rg=sh.getDataRange(); var vals=rg.getValues(); var prepList=[]; 对于(var i=1;i请尝试以下方法:

function getPrepList(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();;
  var rg=sh.getDataRange();
  var vals=rg.getValues();
  var prepList=[];
  for(var i=1;i<vals.length;i++){
    if(vals[i][5]){
      prepList.push(vals[i][0]);
    }
  }
  return prepList;
}
函数getPrepList(){ var ss=SpreadsheetApp.getActive(); var sh=ss.getActiveSheet();; var rg=sh.getDataRange(); var vals=rg.getValues(); var prepList=[];
对于(var i=1;i如果您通过按钮调用
showPrepList(prepList)

<button align="center" onClick="showPrepList()">Get Prep List</button><br />
全文如下:

如果您通过按钮呼叫showPrepList(prepList)

<button align="center" onClick="showPrepList()">Get Prep List</button><br />
全文如下:

你希望在返回值中找到什么类型的数据?多少数据?你是否已经检查了允许的类型?我正在返回每个谷歌文档中允许的所有字符串原语。返回大小取决于在DEALALRE范围中有多少行被返回“true”。n接收后解析:
return JSON.stringify(myData);
myData=JSON.parse(receivedInput);
还要注意,由于重复使用电子表格服务,您的服务器代码速度非常慢(当您可以使用内存数组时,在循环中调用
getValue
getCell
)您希望在返回值中找到哪种类型的数据?多少数据?您是否已经审阅了允许的类型?我返回了每个谷歌文档中允许的所有字符串原语。返回大小取决于在DEALALRE范围内的行返回“true”。接收后rsing:
return JSON.stringify(myData);
myData=JSON.parse(receivedInput);
还要注意,由于重复使用电子表格服务,您的服务器代码速度非常慢(当您可以使用内存数组时,在循环中调用
getValue
getCell
)。感谢您抽出时间回答。我对“code.gs”中的任何内容都没有问题。运行服务器端时,getPrepList函数返回正确的值。我遇到的问题是通过“google.script.run”检索数组客户端。我的直觉(以及非常有限的经验)是,这是一种“异步"我试图用'index.html'中的'withSuccessHandler'回调函数解决的问题。在客户端和服务器之间可以传递的内容有限制。您可能需要在指南部分检查这些限制。感谢您花时间回答。我对'code.gs'中的任何内容都没有问题。getPrepList函数在运行s时服务器端返回正确的值。我一直遇到的问题是通过“google.script.run”检索数组客户端。我的直觉(以及非常有限的经验)是这是某种“异步”我试图用'index.html'中的'withSuccessHandler'回调函数解决的问题。在客户端和服务器之间可以传递的内容有一些限制,您可能需要在指南部分检查这些限制