Google apps script 从Google表单中删除项目时出错

Google apps script 从Google表单中删除项目时出错,google-apps-script,google-forms,Google Apps Script,Google Forms,在我的谷歌表单中,我有5个部分,5个项目:每个部分一个项目,4个列表项目和1个CheckboxGrid项目。使用此代码从项目中清除表单后: function clearAll(form){ var items = form.getItems(); for (var i=0; i<items.length; i++) { form.deleteItem(i); } } 这会导致错误“表单更新请求无效。”与pop()函数一致。它只删除了最后一项。 可能在访问项、节时出现了

在我的谷歌表单中,我有5个部分,5个项目:每个部分一个项目,4个列表项目和1个CheckboxGrid项目。使用此代码从项目中清除表单后:

function clearAll(form){
  var items = form.getItems();
  for (var i=0; i<items.length; i++) {
    form.deleteItem(i);
  }
}
这会导致错误“表单更新请求无效。”与pop()函数一致。它只删除了最后一项。
可能在访问项、节时出现了一些问题?

发生错误的原因是索引基于0(零),换句话说,基于5个元素的集合,最后一个元素的索引是4

另一方面,如果要使用循环删除所有表单项,包括节,则应该向后迭代

function clearAll(form){
  var items = form.getItems();
  for (var i=items.length-1; i>=0; i--) {
    form.deleteItem(i);
  }
}
相关的


发生此错误是因为索引基于0(零),换句话说,基于5个元素的集合,最后一个元素的索引是4

另一方面,如果要使用循环删除所有表单项,包括节,则应该向后迭代

function clearAll(form){
  var items = form.getItems();
  for (var i=items.length-1; i>=0; i--) {
    form.deleteItem(i);
  }
}
相关的


如果您使用删除计数器,那么我认为您可以这样做:

function clearAll(form){
  var items=form.getItems();
  var d=0;//deleted items counter
  for (var i=0; i<items.length; i++) {
    form.deleteItem(i-d++);
  }
}
函数clearAll(表单){
var items=form.getItems();
var d=0;//已删除项目计数器

对于(var i=0;i如果您使用删除计数器,那么我认为您可以这样做:

function clearAll(form){
  var items=form.getItems();
  var d=0;//deleted items counter
  for (var i=0; i<items.length; i++) {
    form.deleteItem(i-d++);
  }
}
函数clearAll(表单){
var items=form.getItems();
var d=0;//已删除项目计数器

对于(var i=0;iWhy)如果您的脚本用于删除项目,它会删除节吗?我如何避免或删除节?如果您的脚本用于删除项目,它为什么会删除节?我如何避免或删除节?此代码还会出现错误“无效的表单更新请求”。作为pop()版本。这可能是访问项/节时出现的一些问题?pop()返回数组的最后一个元素,而deleteItem需要整数。此代码也会出现错误“表单更新请求无效”。作为pop()的版本。这可能是访问项/节时出现的一些问题?pop()返回数组的最后一个元素,而deleteItem需要整数