Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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 如何在特定脚本上调用参数为'findRow(s)`的函数?_Javascript_Function_Google Apps Script - Fatal编程技术网

Javascript 如何在特定脚本上调用参数为'findRow(s)`的函数?

Javascript 如何在特定脚本上调用参数为'findRow(s)`的函数?,javascript,function,google-apps-script,Javascript,Function,Google Apps Script,这段代码运行得非常好。我只是不明白为什么。 有人能解释一下函数findRow是如何被“调用”的吗? 我看不出是什么让函数findRow运行 我看到了他们如何定义var rA=findRow(resp.getResponseText()) 对我来说,这使函数运行似乎没有意义。 很明显,我对这件事很生疏。。。仅仅定义变量的行为是否会使下一个函数“工作”? 或者是开始工作的Logger.log部分 function findAString(){ var ss=SpreadsheetApp.getA

这段代码运行得非常好。我只是不明白为什么。 有人能解释一下函数
findRow
是如何被“调用”的吗?
我看不出是什么让函数
findRow
运行

我看到了他们如何定义
var rA=findRow(resp.getResponseText())

对我来说,这使函数运行似乎没有意义。 很明显,我对这件事很生疏。。。仅仅定义变量的行为是否会使下一个函数“工作”?
或者是开始工作的
Logger.log
部分

function findAString(){
  var ss=SpreadsheetApp.getActive();
  var sh1=ss.getActiveSheet();
  var sh2=ss.getSheetByName('Completed');
  var resp=SpreadsheetApp.getUi().prompt("Enter a String");
  var s=resp.getResponseText();
  if(s){
    var rA=findRow(s);
    if (rA.length>0){
      sh2.getRange(sh2.getLastRow()+1,1,rA.length,rA[0].length).setValues(rA);
      var rows='<br /><h3>Order details have been moved to the Completed     tab</h3><br />';
      rows+=Utilities.formatString(resp.getResponseText());
      for(var i=0;i<rA.length;i++){
        rows+=Utilities.formatString('<br /> %s',rA[i].join('<br />'));
      }
      rows+='<br /><br /><input type="button" value="Exit" onClick="google.script.host.close();" />';
  if(rows){
    var ui=HtmlService.createHtmlOutput(rows);
    SpreadsheetApp.getUi().showModelessDialog(ui, 'Search Results')
  }
}
  }else{
    throw('Error: Invalid Response');
  }
}

function findRow(s) { ;// the actual search function
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet()
    var rA=[];
    var vA=sh.getDataRange().getValues();
    for(var i=0;i<vA.length;i++) {
      for(var j=0;j<vA[i].length;j++){
        if(vA[i][j].toString().indexOf(s)>-1){
          rA.push(vA[i]);
          break;
        }
      }
    }
    return rA;
  var sourcesheet = ss.getSheetByName('Form Responses 2');
  var targetsheet = ss.getSheetByName('Completed');
  var targetrange = targetsheet.getRange(targetsheet.getLastRow(), 1, sourcesheet.getLastRow(), sourcesheet.getLastColumn());
  var rangeValues = sourcesheet.getRange(2, 1, sourcesheet.getLastRow(), sourcesheet.getLastColumn()).getValues();
   targetrange.setValues(rangeValues);
}
函数findAString(){
var ss=SpreadsheetApp.getActive();
var sh1=ss.getActiveSheet();
var sh2=ss.getSheetByName('Completed');
var resp=SpreadsheetApp.getUi().prompt(“输入字符串”);
var s=resp.getResponseText();
若有(s){
var rA=芬德罗(s);
如果(相对长度>0){
sh2.getRange(sh2.getLastRow()+1,1,rA.length,rA[0].length).setValues(rA);
var rows='
订单详细信息已移动到已完成选项卡
'; rows+=Utilities.formatString(resp.getResponseText());
对于(var i=0;i,正如您已经提到的,findRow函数由

var rA=findRow(resp.getResponseText());
考虑到有几行代码是var
s=resp.getResponseText();
,您可以重写它来保存一些字符,如下所示:

 var rA=findRow(s);
上面这条线是

 var resp=SpreadsheetApp.getUi().prompt("Enter a String");
此行将PromptResponse对象分配给
resp
。PromptResponse对象具有返回字符串对象的方法
getResponseText()

Logger.log(rA)
只将字符串值记录到日志中

参考资料


通过完成javascript教程,您将受益匪浅。请查看参数和函数参数之间的区别