簡體   English   中英

在Google Apps腳本的for循環內調用函數

[英]Call a function inside a for loop in Google Apps Script

我發現了很多有關在循環內調用函數的信息,但是我還沒有發現任何有關Google Apps腳本的信息。 我已經看過多個教程,並基於此創建了代碼: http : //tobyho.com/2011/11/02/callbacks-in-loops/

我的真實腳本從Fusion Table中提取數據,並將其放入Google文檔中。 我試圖用實際名稱替換某些Fusion Table數字數據,但我需要一個函數在循環內運行才能正常工作。 這是一個簡化的方案,它給了我同樣的問題。

    var big = [];
    var data = [["fname1", "lname1", 2, 1980],["fname2", "lname2", 3, 1989]];

    function loop() {
      for(i in data) {
        Logger.log(big[i] = changeData(data[i][2]));
    }
    }

    function changeData(n) {
      return function() {
        Logger.log(n + "this worked");
      };
    }

當我檢查日志時,會得到兩次:function(){Logger.log(n +“ this work”);}

而不是執行功能,它只是返回文本。 我真的是JavaScript和Google Apps腳本的新手。 這是GAS問題還是我的代碼有誤? 任何幫助表示贊賞。

謝謝。

您擁有的changeData函數正在聲明一個函數並返回新函數。

您只需要返回changeData函數的結果

function changeData(n) {      
    Logger.log(n + "this worked"); 
    return "changed data result";
}

暫無
暫無

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

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