【发布时间】:2021-02-17 12:40:47
【问题描述】:
我有一个获取日期并保存它们的代码和一个数组,以便在另一个函数中使用它来发出 POST 请求。我在将这些日期传递到发布请求中时遇到了挑战,并且不断收到错误无法读取未定义的属性“0”。我将不胜感激。
日期代码:
function getDate(){
var dateArray = [];
var date1= new Date(2021,2,15);
var date2 = new Date(2021,3,15);
Set the current date to the starting date
var date = date1;
while(date<=date2){
dateArray.push(date);
date.setDate(date.getDate()+1);
}
return(dateArray);
}
function user_assignments()
{
var user = getUsers()
var assign_arr = [];
for (var i = 0; i < user.length; i++)
{
var url = 'https://api.10000ft.com/api/v1/users/' + user[i].ID + '/assignments?auth=' + tkft_token + '&from=' + start + '&to=' + end
var response = UrlFetchApp.fetch(url, options);
var info = JSON.parse(response);
var content = info.data;
if (content.length > 0)
{
for (var j = 0; j < content.length; j++)
{
var rec = {}
rec.user_id = content[j].user_id
rec.assignable_id = content[j].assignable_id
// rec.ends_at = content[j].ends_at
assign_arr.push(rec)
}
}
}
return assign_arr;
}
POST 请求代码:
function clear_demo(date)
{
var user_dt = user_assignments()
var usedates = getDate()
for (var i = 0; i < user_dt.length; i++)
{
var data = {
'hours': 0,
'date': usedates[i],//Having challenge here
'user_id': user_dt[i].user_id,
'assignable_id': user_dt[i].assignable_id,
};
var payload = JSON.stringify(data);
var options = {
'method': 'POST',
'Content-Type': 'application/json',
'payload': data,
};
【问题讨论】:
-
虽然我不确定这是否是您问题的直接解决方案,例如,当您将
'Content-Type': 'application/json',修改为'contentType': 'application/json',以及将'payload': data,修改为'payload': payload,时,结果如何你会得到吗? -
@Tanaike 感谢您查看此内容。实际上,这里的挑战是将获取日期数组传递给“函数 clear_demo”。我使用 'var usedates = getDate()' 调用了日期函数,但无法将其传递给 'var data' 希望我说得通?
-
感谢您的回复。在您的脚本中,我认为可能需要修改
dateArray.push(date)。因为在这种情况下,我担心值是引用调用。所以请将dateArray.push(date)修改为dateArray.push(new Date(date))。这样,从 2021 年 3 月 15 日到 2021 年 4 月 15 日的日期被放入数组中。我认为这可能是您当前问题的答案。 -
但我不确定您要使用的 API。所以我不确定你的请求是否正确,可以直接使用
'date': usedates[i],。所以如果这个修改没有达到你的目标,你能提供你想要使用的 API 的详细信息吗?通过这个,我想修改它。 -
感谢有关日期的建议。现在,我想遍历 'dateArray.push(new Date(date))' 中的日期并将它们传递到 ''date': usedates[i]' 行中。我该怎么做?
标签: javascript arrays date google-apps-script google-sheets