Google函数removeDuplicates仅适用于精确大小写匹配

时间:2014-12-22 21:03:49

标签: google-apps-script google-sheets

我有一个google工作表文档,其中包含名称和电子邮件地址列表。如果电子邮件地址在同一张表格中的另一行上重复,我正在尝试“删除重复”。该脚本工作正常,但只有在案例是一个确切的匹配。无论字母的情况如何,我都希望我的脚本能够正常工作。例如,如果“JOHN@JOHN.COM”和“john@john.com”都在工作表上,则删除重复。我目前的脚本如下:

    function removeDuplicates() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  var doc = DocumentApp.getActiveDocument();
for(i in data){
    var row = data[i];
    var duplicate = false;
    for(j in newData){
      if(row[9] == newData[j][9]){
  duplicate = true;
    }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
  sheet.clearContents();
  sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}

我确信对于了解其工作原理的人来说,这是一个简单的解决方法。不幸的是那个人不是我。我在编写脚本方面经验很少,并且在很大程度上依赖于我在本网站上可以找到的内容。

1 个答案:

答案 0 :(得分:0)

我要处理的最简单方法是将每个值转换为大写或小写并比较这些值。因此,请将您的比较从if(row[9] == newData[j][9])改为if(row[9].toLowerCase() == newData[j][9].toLowerCase())