【问题标题】:Search match with for loop google app script搜索匹配 for loop google app script
【发布时间】:2020-12-20 21:31:06
【问题描述】:

我正在尝试执行一个函数来检查电子邮件地址是否与我的电子表格中的单元格值匹配,并制作一个包含任何匹配项的数组,但我似乎无法让它工作。

我想这是循环的问题,虽然它正在完成,但我没有从 logger.log 记录数组。

非常感谢任何帮助!

`function searchEmail() {

var formOneSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses');
var lr = formOneSheet.getLastRow();
var formOneData = formOneSheet.getDataRange().getValues();
var col_to_search = 1;
var formOneRow = [];

for (var i = 0; i <= lr; i++) {
  if(formOneData[0][col_to_search] === "abc@gmail.com"){

  return i;
  formOneRow.append(i);
  
  Logger.log(formOneRow);
  }}}`

【问题讨论】:

    标签: javascript for-loop google-apps-script google-sheets


    【解决方案1】:
    • return i; 后面的代码不会被执行,因为函数是 在return is called 时终止。

    • 同样在 for 循环中,您不使用 i 来遍历数组。

    • 由于数组索引从 0 开始,你不想包含 数组的长度作为for循环中的上限。

    • 你想使用push()

    • 我假设您想在 for 循环之后记录结果列表。

    试试这个:

    function searchEmail() {
    
    var formOneSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses');
    var lr = formOneSheet.getLastRow();
    var formOneData = formOneSheet.getDataRange().getValues();
    var col_to_search = 1;
    var formOneRow = [];
    
    for (var i = 0; i < lr; i++) {
      if(formOneData[i][col_to_search] === "abc@gmail.com"){
       formOneRow.push(formOneData[i][col_to_search]);
     }
     } 
       Logger.log(formOneRow)
     }
    

    【讨论】:

    • 感谢马里奥斯的回复,该方法很有意义,但它只返回“abc@gmail.com”所在的行号?
    • 太棒了,现在开始工作了!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多