简单的For Loop Google Apps脚本

时间:2018-09-18 23:02:57

标签: google-apps-script google-sheets

我正在尝试在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脚本搞砸了?

1 个答案:

答案 0 :(得分:3)

您的循环永远不会结束。

在您的脚本中,i=10中的for(var i=1; i=10; i++)必须为condition。但是i=10是它用10代替了i。因此,运行for(var i=1; i=10; i++)时:

  1. 在第一个循环中,它将10替换为ii成为10
    • 1的初始值由10替换为i=10
  2. 在第二个循环中,它将1添加到ii成为11
  3. 在第三个循环中,它用10代替ii成为10
  4. 在第4个循环中,它将1添加到ii成为11
  5. 在第5个循环中,它将10替换为ii成为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循环时,会发生以下情况:

     
      
  1. 执行初始化表达式initialExpression(如果有)。该表达式通常会初始化一个或多个循环计数器,但是语法允许表达任何程度的复杂性。此表达式还可以声明变量。
  2.   
  3. 条件表达式被求值。如果condition的值为true,则执行循环语句。如果condition的值为false,则for循环终止。如果完全省略条件表达式,则假定条件为真。
  4.   
  5. 该语句执行。要执行多个语句,请使用block语句({...})对这些语句进行分组。   如果存在,则执行更新表达式增量表达式。   控制返回到步骤2。
  6.