当使用 Google Apps Script 中的迭代器时,如果所有对象都已经迭代完毕或没有对象可迭代,将会返回错误“Cannot retrieve the next object: iterator has reached the end”。为了避免此错误,我们可以使用 JavaScript 中的 Iterator 接口方法“next()”来检验迭代器是否有下一个对象可迭代,并在使用该对象前进行判断。例如,以下示例代码演示了如何检测迭代器中是否还有下一个对象,如果有则使用该对象,否则停止迭代:
function iterateOverArray() {
var arr = ["a", "b", "c"];
var iterator = arr.values();
var result = iterator.next();
while (!result.done) {
var element = result.value;
Logger.log(element);
result = iterator.next();
}
}
在代码中,我们使用“values()”方法从数组创建迭代器,并在 while 循环中使用“next()”检查迭代器是否有下一个对象,并使用该对象进行处理,直到迭代器中没有对象可迭代为止。这样做可以避免“Cannot retrieve the next object: iterator has reached the end”错误的发生。