【发布时间】:2017-12-17 01:09:38
【问题描述】:
这是我用来从后端检索报告的函数,然后通过映射过程将键从另一个数组映射到对象中每个数组分组的键。 getReport() 函数最初从后端请求数据,但数据在第一次映射后返回为空。一旦再次请求数据,一切都会完美运行。
function getReport() {
vm.loading = true;
vm.selectedReport.reportFunc(location._id, vm.beginDate, vm.endDate, vm.orderStatus.value)
.then(report => {
switch(vm.selectedReport.name) {
case 'Sales by Section':
getSectionIds();
vm.report = prepareSectionsReport(report);
vm.mergedSectionReport = prepareLineItemSales(vm.report).filter( (line) => {
if (line) {
return line;
}
});
break;
default:
vm.report = report;
break;
}
vm.loading = false;
});
}
function prepareSectionsReport(report) {
var r = Object.keys(report).map( (sectionId) => {
for (var section of sections) {
if (section && section.sectionId === sectionId) {
let total = report[sectionId].slice(-1)[0];
return {
sectionName: section.name,
section: report[sectionId],
total: total
};
} else if (sectionId === 'N/A') {
let total = report[sectionId].slice(-1)[0];
return {
sectionName: 'N/A',
section: report[sectionId],
total: total
}
}
}
});
r = removeUndefined(r);
return r;
}
【问题讨论】:
标签: angularjs function loading array.prototype.map