我正在尝试在Google Apps脚本中编写一个非常基本的For循环,它实际上应该可以快速运行。但是,当我执行它时,要花很长时间才能运行,直到收到错误消息,指出运行时间太长(错误:超过了最大执行时间)。
代码是:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = ss.getActiveSheet();
var LR = Sheet.getLastRow()
for(var i=1;i=10;i++)
{
Logger.log(i);
}
}
我做错什么了吗?还是我的Google Apps脚本搞砸了?
答案 0 :(得分:3)
您的循环永远不会结束。
在您的脚本中,i=10
中的for(var i=1; i=10; i++)
必须为condition
。但是i=10
是它用10
代替了i
。因此,运行for(var i=1; i=10; i++)
时:
10
替换为i
。 i
成为10
。
10
替换为i=10
。1
添加到i
。 i
成为11
。10
代替i
。 i
成为10
。1
添加到i
。 i
成为11
。10
替换为i
。 i
成为10
。当您要从1循环到10时,如何修改成这样?
for (var i = 1; i <= 10; i++) {
// do something
}
例如,当您要循环10次时,如何修改成这样?
for (var i = 0; i < 10; i++) {
// do something
}
The documentation of the Javascript for
statement描述:
重复for循环,直到指定条件的计算结果为false。 JavaScript for循环类似于Java和C for循环。 for语句如下:
for ([initialExpression]; [condition]; [incrementExpression]) statement
执行for循环时,会发生以下情况:
- 执行初始化表达式initialExpression(如果有)。该表达式通常会初始化一个或多个循环计数器,但是语法允许表达任何程度的复杂性。此表达式还可以声明变量。
- 条件表达式被求值。如果condition的值为true,则执行循环语句。如果condition的值为false,则for循环终止。如果完全省略条件表达式,则假定条件为真。
- 该语句执行。要执行多个语句,请使用block语句({...})对这些语句进行分组。 如果存在,则执行更新表达式增量表达式。 控制返回到步骤2。