簡體   English   中英

對於循環超時:JavaScript / Google Apps腳本

[英]For Loops timing out: JavaScript / Google Apps Script

所以我對Google Apps腳本有這個問題。 它超時是因為應用服務器請求耗時太長。 我只是想知道我的編碼是否可以清理一下以便更快地運行,還是有另一種方法可以工作?

代碼如下:

for (var y = 1; y < listLast ; y++) {

  var matchor = listSheet.getRange("B" + y).getValue();
  var listEmCo = listSheet.getRange("A" + y).getValue();
  if(matchor == "Match") {
    Logger.log("Do Nothing");
  } else {
  for (var x = 0; x < formLast; x++) {

  if(listEmCo == formData[x]){

    listSheet.getRange("B"+ [y]).setValue("Match");
    break;

  } else {

    listSheet.getRange("B"+ [y]).setValue("No Match");

   }
  }
 }   
}

謝謝你的回復:)

不要使用.getValue(); 在一個循環中。 這個操作很重。

請使用range.getValues()然后循環數組以獲取值。

計划是:

  1. 得到初始range
  2. 使用var data = range.getValues();獲取數據var data = range.getValues();
  3. 使空數組寫入新值array = [];
  4. 循環數據並創建新數組,用適當的值填充[["value1"], ["value2"], ...,] 注意。 它應該是2D陣列。
  5. 循環后定義一個范圍來粘貼新值: rangeTo
  6. 使用rangeTo.setValues(array); 粘貼新值。

查看更多:

標記#Another-get-data-from-range-question

查看有關主題的更多問題:

http://stackoverflow.com/questions/39859421/google-script-internal-error-after-15-seconds

http://stackoverflow.com/questions/39586911/google-script-exceeded-maximum-execution-time-help-optimize

http://stackoverflow.com/questions/38618266/google-sheet-script-times-out-need-a-new-way-or-flip-it-upside-down

http://stackoverflow.com/questions/44021567/google-sheet-script-multiple-getrange-looping

代碼運行速度太慢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM