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

Error with deleting items from Google Form

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

function clearAll(form){
  var items = form.getItems();
  for (var i=0; i<items.length; i++) {
    form.deleteItem(i);
  }
}

我有一个错误"Cannot open item with index 5. Number of items available :5" 它删除了所有项目但没有触及部分。 也尝试了不同的删除方式,比如:

function clearForm(){
 var items = form.getItems();
 while(items.length > 0){
  form.deleteItem(items.pop());
  }
 }

这导致错误 "Invalid form update request."pop() 函数一致。它只删除了最后一项。 也许访问项目、部分存在一些问题?

错误发生是因为索引是基于 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++);
  }
}

这也适用于电子表格中的行。这允许您在循环中正常递增。