Javascript 在Google Apps脚本中的for循环内调用函数

Javascript 在Google Apps脚本中的for循环内调用函数,javascript,google-apps-script,Javascript,Google Apps Script,我已经找到了很多关于在循环中调用函数的信息,但是我还没有发现任何关于GoogleApps脚本的信息。我已经阅读了几篇教程,我的代码基于以下内容: 我真正的脚本从融合表中提取数据,并将其放入Google文档中。我试图用实际名称替换一些融合表数字数据,但我需要在循环中运行一个函数才能使其工作。这里有一个简化的场景,给了我同样的问题 var big = []; var data = [["fname1", "lname1", 2, 1980],["fname2", "lname2",

我已经找到了很多关于在循环中调用函数的信息,但是我还没有发现任何关于GoogleApps脚本的信息。我已经阅读了几篇教程,我的代码基于以下内容:

我真正的脚本从融合表中提取数据,并将其放入Google文档中。我试图用实际名称替换一些融合表数字数据,但我需要在循环中运行一个函数才能使其工作。这里有一个简化的场景,给了我同样的问题

    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 worked”);}

它不是执行函数,而是返回文本。我对javascript和googleapps脚本非常陌生。这是汽油问题还是我的密码有问题?感谢您的帮助


谢谢。

您拥有的changeData函数正在声明一个函数并返回新函数

您只需要返回changeData函数的结果

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

谢谢你的帮助。当我这样做时,changeData日志工作,但是来自循环函数的日志返回“未定义”。这就是我在函数解决方案中搜索函数的原因。下面是GAS脚本:。也许我遗漏了什么。循环运行后,你的
big
数组中有什么?刚刚检查了你的气体链接,你没有从你的changeData函数返回任何东西,试试`函数changeData(n){return n+“这起作用了”;}`伙计,我现在觉得自己很愚蠢。我把这件事弄得太难了。谢谢你的帮助。这是意料之中的行为。删除
返回函数(){…