如何从Javascript/Google应用程序脚本中的另一个函数调用数组

如何从Javascript/Google应用程序脚本中的另一个函数调用数组,javascript,arrays,json,api,google-apps-script,Javascript,Arrays,Json,Api,Google Apps Script,我正在通过外部API从中获取总时间条目。函数需要获取保存在数组中的用户数据,其中包括id。第二个函数需要调用此ID,以获取数据范围的小时数,并将其相加,同时将其保存在数组中。系统API处于运行状态 这是我获取用户数据的第一个函数 function get_users() { // function loops through 10000ft paginations and scrapes user data to array var userarray = [];

我正在通过外部API从中获取总时间条目。函数需要获取保存在数组中的用户数据,其中包括
id
。第二个函数需要调用此ID,以获取数据范围的小时数,并将其相加,同时将其保存在数组中。系统API处于运行状态

这是我获取用户数据的第一个函数

function get_users() {
    // function loops through 10000ft  paginations and scrapes user data to array
    var userarray = [];        
    var lastpage  = false;
    var page      = 1;

    do{        
        // gets 10kft data
        var users = read10k_users(page);            
        // writes data from current page to array

        for (i in users.data) {
            var rec     = {};
            // pushing of mandatory data
            rec.id      = users.data[i].id;
            rec.display_name = users.data[i].display_name;
            rec.email   = users.data[i].email;                
            userarray.push(rec);

        }

        Logger.log(userarray)
        // checks if this is the last page (indicated by paging next page link beeing null
        if (users.paging.next != null) {
            lastpage = false;
            var page = page + 1;
        } else {
            lastpage = true;
        }

    }while (lastpage == false);

    return (userarray);

}
我的第二个函数需要引用数组中保存的id,以便返回特定用户的总小时数,这就是我丢失的地方

function get_timedata(id) {
    // function loops through 10000ft  paginations and scrapes time entries to array
    var timearray = [];        
    var lastpage  = false;
    var page      = 1;

    do{

        // gets time data from  10000ft 
        var timedata = read10k_timedata(from_dt,to_dt,); 

        // writes data from current page to array

        for (i in timedata.data) {
            var rec       = {};
            // collection of time data from time entries endpoint
            rec.id        = timedata.data[i].id;
            rec.user      = timedata.data[i].user_id;
            rec.hours_inc = timedata.data[i].hours;                 

            // pushing  incurred hours      
            if (rec.hours_inc >= 0 ) {
                timearray.push(rec);                
            }
            //Logger.log(timearray)
        }

        // checks if this is the last page (indicated by paging next page link beeing null
        if (timedata.paging.next != null) {
            lastpage = false;
            var page = page + 1;
        } else {
            lastpage = true;
        }

    }while (lastpage == false);        
    return (timearray);

}

任何帮助都将不胜感激。提前感谢

如果我理解正确,您希望:

  • 存储某个函数返回的JavaScript对象数组
  • 在将来使用的函数中使用此存储阵列
如果这是正确的,您可以使用来存储数据。此工具允许脚本以键值对的形式存储简单数据

现在,您只能存储字符串,并且希望存储JS对象数组。因此,为了将其存储到script属性,首先必须使用,它将JavaScript对象或值转换为JSON字符串

稍后,当您想要使用数据时,只需使用将字符串转换回对象数组即可

工作流程: 综上所述,在
get_users
中,将
userarray
转换为JSON字符串,并将其存储为脚本属性,如下所示:

var value=JSON.stringify(userarray);
var scriptProperties=PropertiesService.getScriptProperties();
setProperty(“您的键”,值);
然后,每当您想要检索该数据时(在
get_timedata
中或在另一个调用此函数的函数中),通过检索属性,并将其转换为对象数组,如下所示:

var scriptProperties=PropertiesService.getScriptProperties();
var value=scriptProperties.getProperty(“您的密钥”);
var object=JSON.parse(值);
现在,您可以访问数组中不同的
id
,就像访问原始数组一样(例如
object[0][“id”]

参考:

我希望这能有所帮助。

如果我理解正确,您希望:

  • 存储某个函数返回的JavaScript对象数组
  • 在将来使用的函数中使用此存储阵列
如果这是正确的,您可以使用来存储数据。此工具允许脚本以键值对的形式存储简单数据

现在,您只能存储字符串,并且希望存储JS对象数组。因此,为了将其存储到script属性,首先必须使用,它将JavaScript对象或值转换为JSON字符串

稍后,当您想要使用数据时,只需使用将字符串转换回对象数组即可

工作流程: 综上所述,在
get_users
中,将
userarray
转换为JSON字符串,并将其存储为脚本属性,如下所示:

var value=JSON.stringify(userarray);
var scriptProperties=PropertiesService.getScriptProperties();
setProperty(“您的键”,值);
然后,每当您想要检索该数据时(在
get_timedata
中或在另一个调用此函数的函数中),通过检索属性,并将其转换为对象数组,如下所示:

var scriptProperties=PropertiesService.getScriptProperties();
var value=scriptProperties.getProperty(“您的密钥”);
var object=JSON.parse(值);
现在,您可以访问数组中不同的
id
,就像访问原始数组一样(例如
object[0][“id”]

参考:

我希望这会有所帮助。

您需要从另一个函数调用其中一个函数,将数组传递给它,或者在某处记录数组(例如Google Sheet),然后在第二个脚本开始时从那里获取它。@ross,谢谢。在这种情况下,我试图避免使用G-sheet。是否有替代Gsheet的方法?您需要从另一个函数调用其中一个函数,将数组传递给它,或者在某处记录数组(例如Google Sheet),然后在第二个脚本开始时从那里获取它。@ross,谢谢。在这种情况下,我试图避免使用G-sheet。是否有替代Gsheet的方法?