javascript - 谷歌应用程序脚本数组从顶部删除重复值

标签 javascript arrays google-apps-script

我有这个工作代码,它通过比较 B 列中的值来删除重复项。如果第 2 行和第 3 行在 B 列中具有相同的值,则删除第 3 行。

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

如何更改此代码以通过编辑此代码构建数组,以便删除第 3 行而不是第 2 行?

最佳答案

我想这就可以了。

  function removeDuplicates() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var row=rg.getRow();
  var col=rg.getColumn();
  var vA=rg.getValues();
  var nA=[];
  var duplicate=true;
  for(var i=0;i<vA.length;i++)
  {
    duplicate=false;
    for(var j=0;j<nA.length;j++)
    {
      if(vA[i][1]==nA[j][1])
      {
        duplicate=true;
        nA[j]=vA[i];
      }
    }
    if(!duplicate)
    {
      nA.push(vA[i]);
    }
  }
  rg.clearContent();
  sh.getRange(row, col, nA.length, nA[0].length).setValues(nA);
}

外层循环遍历事件工作表的所有行,每次遍历都将重复项设置为 false。内部循环搜索 nA[] 以查找 columnB 匹配项,如果它找到一个并将 duplicate 设置为 true。如果 duplicate 为真,则它不会添加到 nA[]。第一次通过 nA.length 是 0,所以内部循环不做任何重复是错误的,因此该元素被添加到 nA[]。它一直这样做,直到没有更多的行并且 nA 中的行成为唯一行。当我第一次这样做时,它就是这样运行的。但是由于您想保留最后一个副本而不是第一个副本,所以我添加了 nA[j]=vA[i];,它用当前匹配项替换了当前元素。

只需设置一些假数据并使用它,您就会开始了解它是如何工作的。

关于javascript - 谷歌应用程序脚本数组从顶部删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115557/

相关文章:

javascript - 禁用 PDF Web View 元素中的工具栏以禁用下载和打印

javascript - 在另一个 div 中使用 div 来创建网站的结构

javascript - 使用数组上的 observable api 更新更改后,JsViews 不会删除脚本标签

ios - swift 删除项目后如何重新填充数组

javascript - 我可以有一个 id 变量并且在调用客户端函数时遇到问题吗... google-apps-script

excel - 如何在 Google 电子表格单元格中调整绘图?

javascript - 当我使用 Angular cli 生成文件夹时,更改 sourceRoot 始终会生成应用程序子文件夹

javascript - 如何检测 textContent 何时溢出其父级

javascript - Google 云端硬盘中的搜索脚本

python - 如何从 perlin-noise 获得 2D 图 block 输出?