Javascript 返回未定义的Google函数

Javascript 返回未定义的Google函数,javascript,Javascript,我有一个自定义谷歌脚本的问题,我正在生成一个基于其他表单的信息表堆。我不明白为什么会发生这种事 在返回正确之前,我已尝试包含日志和值。。但是当它返回时,我得到了未定义的值。 这是关于函数:getTournamentInfo(),从tournamentInfo=getTournamentInfo(matchInfo[0])调用 函数getTournamentInfo(缩写){ var sheet=ss.getSheetByName(“锦标赛”); var tournaments=sheet.get

我有一个自定义谷歌脚本的问题,我正在生成一个基于其他表单的信息表堆。我不明白为什么会发生这种事

在返回正确之前,我已尝试包含日志和值。。但是当它返回时,我得到了未定义的值。 这是关于函数:getTournamentInfo(),从tournamentInfo=getTournamentInfo(matchInfo[0])调用

函数getTournamentInfo(缩写){
var sheet=ss.getSheetByName(“锦标赛”);
var tournaments=sheet.getRange(“B2:B”).getValues().filter(字符串);
log(“获取缩写:+缩写”);
var r=2;
锦标赛。forEach(功能(锦标赛){
如果(锦标赛!=“”)
{
var tInfo=sheet.getRange(“B”+r+”:K“+r).getValues().toString().split(“,”);
if(tInfo[0]==缩写){
console.log(“为:+tInfo[0]返回信息”);
返回锡箔;
}
}
});
}
函数generateSheets(){
var sheet=ss.getSheetByName(“匹配计划”);
var matches=sheet.getRange(“B5:B”).getValues().filter(字符串);
var r=5;
matches.forEach(函数(匹配){
如果(匹配!=“”)
{
var matchInfo=sheet.getRange(“B”+r+”:L“+r).getValues().toString().split(“,”);
if(matchInfo[10]=“true”)//检查是否生成工作表
{
console.log(“Generate=“+matchInfo[10]);
log(“获取比赛信息:+matchInfo”);
var tournamentInfo=“”;
试一试{
tournamentInfo=getTournamentInfo(matchInfo[0]);
}捕获(e){
控制台日志(e);
}
控制台日志(tournamentInfo);
var template=“1v1PlayerTemplate”;//默认模板
如果(tournamentInfo[3]==2){
template=“1v1TeamTemplate”;
}else if(tournamentInfo[3]==3){
template=“XvXTeamTaplte”;
}
var sheetName=matchInfo[0]+“|”+matchInfo[1];
var matchSheet=ss.getSheetByName(模板).copyTo(ss.getSheetByName(模板).getParent()).setName(图纸名称);
}
}
r++;
});
}```

您的
getTournamentInfo
函数没有返回您的结果。return语句只会使
forEach
中提供的函数短路。这是一种可能的解决方案(未经测试):


请告诉我们您期望发生什么以及实际发生了什么。
function getTournamentInfo(abbreviation) {
    var sheet = ss.getSheetByName("Tournaments");
    var tournaments = sheet.getRange("B2:B").getValues().filter(String);
    console.log("Fetching Abbreviation: " + abbreviation);
    var r = 2;
    let result; // <----
    tournaments.forEach(function (tournament) {
        if (tournament != "" && result == undefined) { // <-----
            var tInfo = sheet.getRange("B" + r + ":K" + r).getValues().toString().split(",");
            if (tInfo[0] == abbreviation) {
                console.log("Returning Info for: " + tInfo[0]);
                result = tInfo; // <----
            }
        }
    });
    return result; // <----
}
function getTournamentInfo(abbreviation) {
    var sheet = ss.getSheetByName("Tournaments");
    var tournaments = sheet.getRange("B2:B").getValues().filter(String);
    console.log("Fetching Abbreviation: " + abbreviation);
    var r = 2;
    for (const tournament of tournaments) { // <==============
        if (tournament != "") {
            var tInfo = sheet.getRange("B" + r + ":K" + r).getValues().toString().split(",");
            if (tInfo[0] == abbreviation) {
                console.log("Returning Info for: " + tInfo[0]);
                return tInfo;
            }
        }
    }
}