Class ItemResponse

响应

对表单中某个题目的回答。您可以通过 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(),
    );
  }
}

方法

方法返回类型简介
getFeedback()Object获取针对受访者提交的回答提供的反馈。
getItem()Item获取此回答所对应的问题项。
getResponse()Object获取受访者提交的回答。
getScore()Object获取受访者提交的回答的得分。
setFeedback(feedback)ItemResponse设置应针对受访者提交的答案显示的反馈。
setScore(score)ItemResponse为受访者提交的答案设置分数。

详细文档

getFeedback()

获取针对受访者提交的回答提供的反馈。

返回

Object - 题目项的 QuizFeedback

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItem()

获取此回答所对应的问题项。

返回

Item - 此回答对应的题目项

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getResponse()

获取受访者提交的回答。对于大多数类型的题目项,此方法会返回 String

对于 CheckboxItem 题目,此方法会返回一个 String[] 数组,其中包含回复者的选项。数组中字符串的顺序可能会有所不同。

对于 GridItem 题目,此方法会返回一个 String[] 数组,其中编号为 n 的答案对应于网格中第 n + 1 行的题目。如果受访者未回答网格中的某个问题,系统会将该答案返回为 ''

对于 CheckboxGridItem 题目,此方法会返回一个 String[][] 数组,其中行编号 n 对应的答案与复选框网格中行编号 n + 1 对应的题目相对应。如果受访者未回答网格中的某个问题,系统会将该答案返回为 ''

返回

Object - 题目答案的 StringString[]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)

设置应针对受访者提交的答案显示的反馈。

在使用更新后的 FormResponse 调用 Form.submitGrades(responses) 之前,此方法实际上不会在 Google 表单中保存反馈。如需查看示例,请参阅 setScore()

参数

名称类型说明
feedbackObject

返回

ItemResponse - 用于链接的 ItemResponse

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setScore(score)

为受访者提交的答案设置分数。null 值会清除现有得分。

在使用更新后的 FormResponse 调用 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);

参数

名称类型说明
scoreObject

返回

ItemResponse - 用于链接的 ItemResponse

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms