【发布时间】:2018-05-07 14:02:55
【问题描述】:
我在附加到 Google 表单的 Apps 脚本函数中出现了一个奇怪的错误。
我调用响应,然后将它们列在一个数组中。日志显示数组有6个项目,匹配6个表单问题:
[18-05-08 00:13:31:900 AEST] [ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse, ItemResponse]
当我调用前两个时,它工作得很好。再多的话,它就会出错并说undefined。
// Open a form by ID and log the responses to each question.
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
for (var i = 0; i < formResponses.length; i++) {
var formResponse = formResponses[i];
var editUrl = String(formResponse.getEditResponseUrl());
var theResponseId = formResponses.indexOf(form);
var itemResponses = formResponse.getItemResponses();
var timestamp = formResponse.getTimestamp();
var firstName = itemResponses[0].getResponse();
var lastName = itemResponses[1].getResponse();
Logger.log(itemResponses); // Log shows there are 6 objects in the array. Matching the amount of Form Questions.
// If I try to use these variables below, it doesn't work and the script 'breaks' at this point.
//var number = itemResponses[2].getResponse();
//var email = itemResponses[3].getResponse();
//var firstName2 = itemResponses[4].getResponse();
//var comments = itemResponses[5].getResponse();
}
注意:我已经尝试过FormApp.openById('id');,看看获取活动表单是否有问题。这没有帮助。
【问题讨论】:
-
@tehhowch 感谢您一直在这里指导我。我已经更新了日志
-
你得到的实际完整错误是什么?根据documentation for
ItemResponse,我没有发现任何问题。 -
这只是表明答案已提交到 2 个问题的表单。您确定您的表单包含 6 个问题吗?
-
如果您在扩展 from 之前提交了一些回复,那么对于旧回复,这些新问题的答案肯定是“未定义”
-
不用担心 - 很高兴我能提供帮助。我在下面发布了答案。
标签: arrays google-apps-script google-forms