【问题标题】:how to sort a 2D array in google apps script/ google spreadsheet如何在谷歌应用脚​​本/谷歌电子表格中对二维数组进行排序
【发布时间】:2016-07-21 03:43:05
【问题描述】:

我有一个 google 电子表格,其中包含分布在各个列(如 6 列 - 电话号码、IMEI、URL、ID、Reg No 和时间)的多个数据,并且我有 15K 行数据。

我必须在新工作表中找到/显示所有重复的电话号码(第 0 列)和与之相关的数据。

但是,当我尝试对数据进行排序时,它会抛出类似的错误

“比较方法违反了它的一般约定。(第 6 行,文件“代码”)”

代码如下,供大家参考:

function myFunction() {

  var values  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DUP').getDataRange().getValues()

  var dupData = new Array();

  values.sort(function sortFunction(a, b) {
    if (a[0] === b[0]) {
        return 0;
    }
    else {
        return (a[0] < b[0]) ? -1 : 1;
    }
});

  for(i=1;i<values.length;i++)
  {
    if (values[i][0] == values[i+1][0]) {
        dup.push(values[i]);
    }
  }

   var new1 = dpnum.getSheetByName('Test123');
  new1.getRange(1,1,dup.length,dup[0].length).setValues(dup);

}

【问题讨论】:

标签: google-apps-script google-sheets google-speech-api


【解决方案1】:

您的代码可以这样简化(代码中的 cmets):

function myFunction() {
  var values  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DUP').getDataRange().getValues()  
  var dupData = new Array();  
  values.sort(function(x,y){  // sort on first column
    var xp = x[0];
    var yp = y[0];
    return xp < yp ? -1 : xp > yp ? 1 : 0;// return 0 if equal, 1 if > and -1 if <
  });  
  for(var i=1 ; i<values.length ; i++){
    if (values[i-1][0] == values[i][0]) { // I changed the index as well to keep only valid data
      dup.push(values[i]);
    }
  } 
  var new1 = dpnum.getSheetByName('Test123');
  new1.getRange(1,1,dup.length,dup[0].length).setValues(dup);  
}

【讨论】:

  • 非常感谢您抽出宝贵的时间。我尝试了以下代码,但仍然无法正常工作。我的主要目的是找到重复的电话号码以及其他五个与电话号码相关的数据。 .请帮我写代码
  • 错误信息 // 比较方法违反了它的一般约定。 (第 7 行,文件“代码”)解雇
  • function myFunction() { var values = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DUP').getDataRange().getValues() var dupData = new Array(); values.sort(function(x,y){ var xp = x[0]; var yp = y[0]; return xp yp ? 1 : 0; }); for(var i=1 ; i
猜你喜欢
  • 2012-12-30
  • 1970-01-01
  • 2012-06-15
  • 2013-12-27
  • 1970-01-01
  • 2011-05-29
  • 2022-10-14
  • 1970-01-01
相关资源
最近更新 更多