gpt4 book ai didi

javascript - 如何从 Javascript/Google App 脚本中的另一个函数调用数组

转载 作者:行者123 更新时间:2023-12-01 00:14:01 32 4
gpt4 key购买 nike

我正在努力通过外部 API 获取总时间条目。该函数需要获取用户数据,其中包括保存在数组中的id。第二个函数需要调用此 ID 来获取数据范围的小时数并将其总计并将它们保存在数组中。系统 API 位于 https://github.com/10Kft/10kft-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 对象数组。
  • 在您将来要使用的函数中使用此存储的数组。

如果这是正确的,您可以使用PropertiesService来存储您的数据。该工具允许脚本以键值对的形式存储简单数据。

现在,你只能存储字符串,而你想存储JS对象数组。因此,为了将其存储到脚本属性中,您首先必须使用 JSON.stringify() ,它将 JavaScript 对象或值转换为 JSON 字符串。

以后,当你想使用这些数据时,你只需使用JSON.parse()即可。将字符串转换回对象数组。

工作流程:

总结一下,在 get_users 中将 userarray 转换为 JSON 字符串,并通过 setProperty(key, value) 将其存储为脚本属性,像这样:

var value = JSON.stringify(userarray);
var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty("your-key", value);

然后,每当您想要检索该数据(在 get_timedata 中或在调用此数据的另一个函数中)时,请通过 getProperty(key) 检索该属性。 ,并将其转换为对象数组,如下所示:

var scriptProperties = PropertiesService.getScriptProperties();
var value = scriptProperties.getProperty("your-key");
var object = JSON.parse(value);

现在您可以像访问原始数组一样访问数组中的不同id(例如object[0]["id"])。

引用:

希望这对您有所帮助。

关于javascript - 如何从 Javascript/Google App 脚本中的另一个函数调用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59891378/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com