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());
考虑到有几行代码是vars=resp.getResponseText();
,您可以重写它来保存一些字符,如下所示:
var rA=findRow(s);
上面这条线是
var resp=SpreadsheetApp.getUi().prompt("Enter a String");
此行将PromptResponse对象分配给resp
。PromptResponse对象具有返回字符串对象的方法getResponseText()
Logger.log(rA)
只将字符串值记录到日志中
参考资料
通过完成javascript教程,您将受益匪浅。请查看参数和函数参数之间的区别