【发布时间】:2020-01-27 15:44:53
【问题描述】:
所以我的函数通过外部 API 从项目系统获取时间条目。对时间条目求和的条件是审批状态需要有某个值(> 0)。现在我想添加另一个条件 (&&),以便 每天 天必须至少有一个带有值的审批状态(即,计算审批状态的数量等于或大于 5计算发生)。这是为了强制用户输入一周中的每一天的条目。我该怎么做?这是我尝试过的,不知道该怎么做。 PS:这是为许多用户计算的。
var response = UrlFetchApp.fetch(url, options);
var info = JSON.parse(response.getContentText());
var content = info.data;
var total_hours = 0;
var count = 0;
for (var j = 0; j < content.length; j++) {
if (content[j].approvals.data.length > 0 && count >= 5) {
total_hours += content[j].hours;
}
}
Logger.log(total_hours)
}
示例 JSON 数据
{"paging":{"per_page":20,"page":1,"previous":null,"self":"/api/v1/users/678108/time_entries?assignable_id=&fields=approvals&from=2020 -01-20&to=2020-01-24&user_id=678108&page=1","next":"/api/v1/users/678108/time_entries?assignable_id=&fields=approvals&from=2020-01-20&to=2020-01-24&user_id= 678108&page=2"},"data":[{"id":1661350010,"assignable_id":2993759,"assignable_type":"Project","user_id":678108,"bill_rate":0.1,"bill_rate_id":37032684, "date":"2020-01-20","hours":0.0,"scheduled_hours":null,"notes":null,"task":null,"is_suggestion":false,"created_at":"2020-01 -21T17:32:22Z","updated_at":"2020-01-24T15:08:22Z","approvals":{"paging":{"self":"../time_entries/1661350010/approvals?per_page= 0&page=1","next":null,"previous":null,"page":1,"per_page":0},"data":[]}},
【问题讨论】:
-
你可以使用reduce函数来达到这个目的。
-
@demkovych,感谢您查看代码。请告诉我怎么做。
-
你能分享你的数据吗?
-
@demkovych 请查看我编辑的问题以获取示例 JSON 响应
-
您的approvals.data 数组的结构是什么?有一些对象,它有状态属性?
标签: javascript api loops google-apps-script counting