使用Google Apps脚本从数组中获取最后一个值

时间:2017-07-23 12:50:06

标签: javascript arrays multidimensional-array google-apps-script google-apps

我需要从数组中获取最后一个值,并且在使用切片

时我不断收到此错误
  

TypeError:找不到对象中的功能片Sun Jul 23 2017 00:00:00 GMT + 0100(BST)。 (第15行,档案

如果我使用长度-1,我会得到NaN。

这是我正在使用它的代码。

(*) `on` length :: [d] -> [d] -> Int

......这就是表格

full table

所以当我匹配当前日期(今天)时,我需要从该数组(列)中检索最后一个值,即当天的总计。

谢谢!

亲切的问候,

1 个答案:

答案 0 :(得分:1)

getTotal始终是一个奇异值 此外,由于您只对一个日期进行标准化,因此您找到列的方式会因时区而变脆 如果你使用两个日期(除非你想做索引限制,需要安全处理),你的列查找方法才有效。

function getTodaysTotal() {
  function toUtcMidnight(date) {
    try {return date.setHours(0,0,0,0);}
    catch(e) {return;}
  }

  var values = SpreadsheetApp
      .getActiveSpreadsheet()
      .getSheetByName("Data")
      .getDataRange()
      .getValues();

  var today = toUtcMidnight(new Date());
  var todaysColumn = values[4].map(toUtcMidnight).map(Number).indexOf(+today);
  var output = values[values.length - 1][todaysColumn];
  return values[values.length - 1][todaysColumn];
}