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

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

我需要从数组中获取最后一个值,当我使用切片时,我不断收到此错误

TypeError: Cannot find function slice in object Sun Jul 23 2017 00:00:00 GMT+0100 (BST). (line 15, file

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

这是我正在使用的代码。

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Data");
  var range = sheet.getDataRange();
  var values = range.getValues();
  var today = new Date(Date.now());
   today.setHours(0,0,0,0);
    Logger.log(today);

var setTotal;
var getToday = values[4].map(Number).indexOf(+today);
Logger.log(getToday);
for (i = 0; i < values.length; i++) {
 var getTotal = values[i][getToday];
       Logger.log(getTotal.slice(-1)[0]); 
 }
}

...这是表格

full table

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

谢谢!

亲切的问候,

最佳答案

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];
}

关于javascript - 使用 Google Apps 脚本从数组中获取最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45265291/

相关文章:

javascript - Angular 2 : How to display image to HTML from JSON API

c - 使用 sscanf 将 double 从 char 解析为二维数组

c# - 创建新的多维数组并用其他数组的值填充它

php - 如何在 PHP 中转义这个 JavaScript 变量

javascript - 重构重复的三元语句?

javascript - 随着内容的增长向下推页脚

php - 可以只用键初始化 PHP 数组吗?

c++ - 在 C++ 中对数组使用运算符减号 (-)

java - BufferReader 填充二维数组缺少最后一行

python - 需要创建一个新的 Python 列表,其中包含另一个列表的所有可能的唯一组合