Javascript 为什么赢了';Google应用程序脚本在数组中查找字符串
我希望GoogleApps脚本将电子表格中的列名转换为列号,但无法使其与列名字符串匹配。有人能告诉我我能做些什么使它工作吗。这是我的代码:Javascript 为什么赢了';Google应用程序脚本在数组中查找字符串,javascript,arrays,string,google-apps-script,Javascript,Arrays,String,Google Apps Script,我希望GoogleApps脚本将电子表格中的列名转换为列号,但无法使其与列名字符串匹配。有人能告诉我我能做些什么使它工作吗。这是我的代码: function getCol(columnName){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form responses 1"); var colNames = sheet.getRange(1, 1, 1, sheet.getLastColumn())
function getCol(columnName){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form responses 1");
var colNames = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
for (var i = 0; i < colNames.length; i++){
if (colNames[i].toLowerCase() === columnName.toLowerCase()){
return i;
}
throw "Column name "+columnName+" not found in column names "+colNames;
}
}
在for循环中有throw语句。您需要将其移动到for循环之外。 现在,您只需测试数组中的第一个值,在本例中为“Def”,然后调用throw语句。由于'Def'不等于参数columnName,因此在您的情况下,它似乎是'Date Required',因此会抛出一个错误 这就是它的外观,如果您将“Date Required”作为参数传入,函数现在应该返回1
function getCol(columnName){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form responses 1");
var colNames = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
for (var i = 0; i < colNames.length; i++){
if (colNames[i].toLowerCase() === columnName.toLowerCase()){
return i;
}
}
throw "Column name "+columnName+" not found in column names "+colNames;
}
函数getCol(columnName){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“表单响应1”);
var colNames=sheet.getRange(1,1,1,sheet.getLastColumn()).getValues()[0];
对于(var i=0;ifunction getCol(columnName){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form responses 1");
var colNames = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
for (var i = 0; i < colNames.length; i++){
if (colNames[i].toLowerCase() === columnName.toLowerCase()){
return i;
}
}
throw "Column name "+columnName+" not found in column names "+colNames;
}