按最高价格的谷歌脚本排序数组

时间:2017-06-04 08:32:20

标签: google-apps-script google-sheets

我有以下电子表格:

| Name | Rating |
| John | 2000   |
| Jane | 50     |
| Bill | 3000   |
| Sam  | 500    |

我通过以下方式获取电子表格的数据:

mySheet.getDataRange().getValues();

我的目标是将阵列从最高评级打印到最低评级。我怎么能这样做?

编辑:我可能应该提到我知道sort函数:但是,问题在于它将字符串排序,而不是数字。这意味着60将显示在2000之上,因为它以6开头。

1 个答案:

答案 0 :(得分:1)

您需要将比较器函数传递给sort()方法。

function sortDescending() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
  var values = range.getValues();

  values.sort(function(a, b){

  return b[1] - a[1]; //sorts by the 2nd element in a row


  });

  Logger.log(values);
  }

请注意,我跳过了标题行,并没有将其包含在要排序的值列表中。希望这会有所帮助。