确保 e.namedValues 获得当前响应

Ensure e.namedValues gets current responses

我正在开发绑定到 Google Sheet 的 Google Apps 脚本,我在使用由 onFormSubmit() 触发器传递的 event object 时遇到了问题在存在与当前问题同名的已删除问题时可靠地访问最新的表单答案。

如果用户删除了一个表单问题并创建了一个同名的新问题 ("Question Title"),使用 e.namedValues[ "Question Title"] 访问问题响应会从旧的已删除问题中提取响应,即总是什么都没有,因为问题被删除了,无法回答。

我知道我可以尝试直接从表单中获取表单响应,例如 FormApp.openByUrl(SpreadsheetApp.getActiveSpreadsheet().getFormUrl()).getResponses() 但我宁愿避免这样做,因为它会显着降低我的脚本速度,更重要的是,会导致我的脚本由于回复不是最新回复 (race conditions).

,因此不准确且有错误

当有一个已删除的问题与当前问题的标题相同时,我该怎么做才能确保 e.namedValue 获取最新的问题?

对于具有相同名称 ("Question Titles") 的问题,e.namedValues[ "Question Title"] 包含一个数组,其中列出了从最少到最近创建的问题的响应。因此,数组中的最后一个元素包含对最近创建的问题的响应。

因此,要检索对具有特定名称 ("question title") 的最新创建问题的响应,您可以使用类似这样的方法

e.namedValues["Question Title"][e.namedValues["Question Title"].length - 1]