【发布时间】:2020-01-28 06:25:40
【问题描述】:
我喜欢在 GAS 中实现数据缩减方面获得帮助,以便我只能处理满足特定条件的数据。
本质上是这段代码:
const total = data.reduce((acc, el) => {
const {hours, approvals: {data}} = el;
if (data.length && data.filter(e => e.status === 'approved' || 'pending').length >= 5) {
acc += hours;
}
return acc;
}, 0);
console.log(total);
在此实现:
var url = 'https://api.10000ft.com/api/v1/users/' + users[i].id + '/time_entries?fields=approvals' + '&from=' + from + '&to=' + to + '&auth=' + TKF_AUTH + '&per_page=' + TKF_PGSZ;
var response = UrlFetchApp.fetch(url, options);
var info = JSON.parse(response.getContentText());
var content = info.data;
var total_hours = 0;
for (var j = 0; j < content.length; j++) {
if (content[j].approvals.data.length > 0 && content[j].approvals.data[0].status != 'ignored') {
total_hours += content[j].hours;
}
}
Logger.log('User name: ' + users[i].display_name + ' ' + 'User id: ' + users[i].id + ' ' + 'total hours: ' + total_hours)
}
}
有人有想法吗?
【问题讨论】:
标签: javascript api loops google-apps-script reduce