表单中一个问题项的回答。您可以从 FormResponse 访问问题项回答,也可以从要求回复者回答问题的任何 Item 创建问题项回答。
// Open a form by ID and log the responses to each question. const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); const formResponses = form.getResponses(); for (let i = 0; i < formResponses.length; i++) { const formResponse = formResponses[i]; const itemResponses = formResponse.getItemResponses(); for (let j = 0; j < itemResponses.length; j++) { const itemResponse = itemResponses[j]; Logger.log( 'Response #%s to the question "%s" was "%s"', (i + 1).toString(), itemResponse.getItem().getTitle(), itemResponse.getResponse(), ); } }
方法
| 方法 | 返回值类型 | 简介 |
|---|---|---|
get | Object | 获取针对回答者提交的回答给出的反馈。 |
get | Item | 获取此回答所回答的问题项。 |
get | Object | 获取回复者提交的回答。 |
get | Object | 获取回答者提交的回答的分数。 |
set | Item | 设置应针对回答者提交的回答显示的反馈。 |
set | Item | 设置回答者提交的回答的分数。 |
详细文档
getFeedback()
获取针对回答者提交的回答给出的反馈。
返回
Object - 问题项的 QuizFeedback
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/forms.currentonly -
https://www.googleapis.com/auth/forms
getItem()
getResponse()
获取回答者提交的回答。对于大多数类型的问题项,此方法会返回 String。
对于 CheckboxItem 问题,此方法会返回一个包含回答者选择的 String[] 数组。数组中字符串的顺序可能会有所不同。
对于 GridItem 问题,此方法会返回一个 String[] 数组,其中索引 n 处的回答对应于网格中第 n + 1 行的问题。如果回复者未回答网格中的问题,则该回答将返回为 ''。
对于 CheckboxGridItem 问题,此方法会返回一个 String[][] 数组,其中行索引 n 处的回答对应于复选框网格中第 n + 1 行的问题。如果回复者未回答网格中的问题,则该回答将返回为 ''。
返回
Object - 问题项的回答的 String 或 String[] 或 String[][]
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/forms.currentonly -
https://www.googleapis.com/auth/forms
getScore()
获取回答者提交的回答的分数。
返回
Object - 表示问题项分数的 Double
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/forms.currentonly -
https://www.googleapis.com/auth/forms
setFeedback(feedback)
设置应针对回答者提交的回答显示的反馈。
在您使用更新后的 FormResponses 调用 Form.submitGrades(responses) 之前,此方法实际上不会在 Google 表单中保存反馈。如需查看示例,请参阅 setScore()。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
feedback | Object |
返回
ItemResponse - 用于链式调用的 ItemResponse
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/forms.currentonly -
https://www.googleapis.com/auth/forms
setScore(score)
设置回答者提交的回答的分数。null 值会清除现有分数。
在您使用更新后的 FormResponses 调用 Form.submitGrades(responses) 之前,此方法实际上不会在 Google 表单中保存分数。
// For a multiple choice question with options: "Always true", "Sometimes true", // and "Never", award half credit for responses that answered "Sometimes true". const formResponses = FormApp.getActiveForm().getResponses(); // Go through each form response for (let i = 0; i < formResponses.length; i++) { const response = formResponses[i]; const items = FormApp.getActiveForm().getItems(); // Assume it's the first item const item = items[0]; const itemResponse = response.getGradableResponseForItem(item); // Give half credit for "Sometimes true". if (itemResponse != null && itemResponse.getResponse() === 'Sometimes true') { const points = item.asMultipleChoiceItem().getPoints(); itemResponse.setScore(points * 0.5); // This saves the grade, but does not submit to Forms yet. response.withItemGrade(itemResponse); } } // Grades are actually submitted to Forms here. FormApp.getActiveForm().submitGrades(formResponses);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
score | Object |
返回
ItemResponse - 用于链式调用的 ItemResponse
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/forms.currentonly -
https://www.googleapis.com/auth/forms