繁体   English   中英

javascript 如果函数无法正常用于索引匹配(应用程序脚本)

[英]javascript if function not working properly for index match (apps script)

我正在尝试检查列中是否存在重复的电话号码,然后返回与 google 应用程序脚本中的电话匹配项关联的第一个 ID 号码。

我创建了一个 if 语句,根据我检查过的每一个参考我都正确编码了。 脚本运行但没有填充?

我定义了与电话号码和 ID 号码相关联的计数范围。 我确保它在我使用的映射中的正确数组中,并使用了一个基本的 if else 语句。

一切似乎都在运行,但该语句并没有抛出 id 号。 事实上什么也没有发生。

请帮忙...

function myFunction() {

 var sss = SpreadsheetApp.openById('spreadsheetid'); // sss = source spreadsheet
 var ss = sss.getSheetByName('spreadsheetname'); // ss = source sheet

 var lr = ss.getLastRow();

  for (var i=3;i<lr;i++) {

   var phone = ss.getRange(i,4,lr).getValues();  
    var id = ss.getRange(i,1,lr).getValues();

   var phonearray = phone.map(function(r){return r[0]});

    if(phonearray == phone[i]){

    //emailarray.indexOf(email[i]) &&

    ss.getRange(i,30,lr).setValue(id[i]);


    } else

       ss.getRange(i,30,lr).setValue("");

   }
}

有一些事情你需要考虑

  1. valuerange 是一个二维数组,因此要访问单个单元格的值,您需要定义phone[i][0]而不是phone[i]
  2. 方法getRange需要语法getRange(startRow, startColumn, numRows)而不是getRange(startRow, startColumn, lastRow) 当您检索您的兴趣范围时,请记住这一点。
  3. 在您的情况下,搜索重复项需要两个(嵌套的) for循环。

请在下面找到如何修改代码以实现所需功能的示例:

function myFunction() {
 var sss = SpreadsheetApp.openById('spreadsheetid'); // sss = source spreadsheet
 var ss = sss.getSheetByName('spreadsheetname'); // ss = source sheet
 var lr = ss.getLastRow();
 var phones = ss.getRange(3,4,lr-3+1).getValues();  
 var ids = ss.getRange(3,1,lr-3+1).getValues();
 var phonearray = phones.map(function(r){return r[0]});
  for (var i=0;i<=(lr-3);i++) {
        var val = phones[i][0];
        var duplicates = [];
    for(var j = 0; j < phonearray.length; j++){
      if (phonearray[j] == val){
            duplicates.push(j);
      }
    }    
    if(duplicates.length>1){            
       Logger.log("duplicate");
      //emailarray.indexOf(email[i]) &&
      ss.getRange((i+3),30).setValue(ids[i]);
    } else{
       Logger.log("no duplicate");
       ss.getRange((i+3),30).setValue("");
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM