【问题标题】:Associative array, google forms and google apps script关联数组、谷歌表单和谷歌应用脚​​本
【发布时间】:2016-06-25 18:42:30
【问题描述】:

我正在尝试在键值对(关联数组)中添加谷歌表单字段的标题,但我在下面的代码中遇到错误:

var sheet = SpreadsheetApp.openById(<SheetID>).getActiveSheet();
var headers = sheet.getRange(1,1,1,getLastCol(sheet)).getValues();
var values = e.range.getValues();
var assoc = {};

for (var i = 0; i < headers.length; i++){
  assoc[headers[i]] = [values[i]];
}

Logger.log("assoc: " + assoc["Timestamp"]);

我不确定为什么尝试记录时间戳时没有输出时间戳。谁能指出我做错了什么?

【问题讨论】:

  • 错误是什么,是哪一行代码导致了错误?这段代码在onEdit() 函数中吗?
  • 在日志中,我得到以下信息: assoc: undefined - 由于标头和值都存在,因此不完全确定为什么它会出现未定义。没有此代码运行 onSubmit() 函数。
  • getValues() 方法返回一个二维数组。 headers[i]values[i] 获取一个内部数组,该数组表示一行中的所有单元格值。尝试使用第二个索引:headers[i][columnNumber_Zero_Indexed]
  • 谢谢你,把它整理出来 - 真不敢相信我忘记了。

标签: google-apps-script google-forms


【解决方案1】:

由于范围只有一行,您可以将零索引添加到 getValues() 的末尾,以便返回正常的一维数组。

var values = e.range.getValues()[0];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2016-10-31
    • 2013-08-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多