如何通过ItemId直接获取Google Forms特定项目的响应(GAS实现)
通过ItemId直接获取Google表单特定问题的响应
你可以利用数组的find()方法,结合getItem().getId()来定位目标Item对应的响应,无需手动遍历所有响应项。以下是优化后的实现代码:
// 打开目标表单 const rbForm = FormApp.openById("nmkhVb56R…"); // 获取所有响应,这里取最新的一条(优化原代码重复调用getResponses()的问题) const allResponses = rbForm.getResponses(); const latestResponse = allResponses[allResponses.length - 1]; const rbItemResponses = latestResponse.getItemResponses(); // 定义你要定位的目标ItemId const targetItemId = "你的目标ItemId"; // 找到对应ItemId的响应项 const targetItemResponse = rbItemResponses.find(itemResp => { return itemResp.getItem().getId() === targetItemId; }); // 如果找到,输出响应内容 if (targetItemResponse) { Logger.log(targetItemResponse.getResponse()); } else { Logger.log("未找到对应ItemId的响应"); }
关键说明:
itemResp.getItem().getId():每个ItemResponse对象可通过getItem()获取对应的表单问题项,再调用getId()拿到该问题的唯一标识ItemId。Array.find():这是JavaScript数组的内置方法,会返回第一个符合条件的元素,内部自动完成遍历逻辑,代码更简洁。- 若需处理多条响应,只需在响应数组上循环,对每条响应执行上述查找逻辑即可。
内容的提问来源于stack exchange,提问作者Robbit
相关产品推荐
相关产品推荐

