首页 > 解决方案 > 有没有办法在使用 App Script 执行期间修改数组中的值

问题描述

我设计了各种相互关联的电子表格,以便自动安排不同部门的任务。然而,随着系统的增长,我的函数运行时间也随着增加,因为需要通过、分析和修改的数据。我已经将问题追溯到事实,即我有嵌套循环,在修改工作表后使用 if 语句重新初始化数组,以便继续使用数组中的新值以供 if 语句引用。

我已经搜索了网络和谷歌参考资料,但到目前为止还没有找到答案。我是一名业余程序员,所以我承认我可能错过了我正在寻找的东西,因为我是绿色的并且还在学习所以如果这是一个愚蠢的问题,我很抱歉

function myFunction(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var lastC = sheet.getLastColumn();
  var lastC = sheet.getLastColumn();
  var lastR = sheet.getLastRow();
  var valueA = sheet.getRange(1, 1, lastR, lastC).getValues();
  var value3 = 1;
  for(i=0; i<lastR-1; i++){
    var value1 = valueA[i][0];
    for(j=0; j<lastR-1; j++){
      for(k=0; k<lastR-1; k++){
        var value2 = valueA[k+1][j];
        if(value1 <= value2){
          var valueDest = sheet.getRange(k, j-1);
          valueDest.setValue(value3);
          value3 = value3 +1;
          valueA = sheet.getRange(1, 1, lastR, lastC).getValues();
        }
      }
    }
  }
}

请原谅任何错误,此代码是仓促编写的,以便了解我要完成的工作

它是限制执行速度的 if 语句的最后一行

有没有办法用代码修改数组中的值,而不是一遍又一遍地从工作表中调用数组以加快执行速度

标签: javascriptarraysgoogle-apps-scriptgoogle-sheets

解决方案


推荐阅读