从reduce [Angular]返回对象



我想返回一个带有reduce函数的对象列表。我想要一个对象列表,比如:

[{project: nameProj, hours: numProj}, {project: nameProj, hours: numProj},{project: nameProj, hours: numProj}]

实际上我只返回一个对象,其中键是项目名称,值是小时:

{
Name1: 9,
Name2: 10,
Name3: 30,
}

我怎么能从减少函数返回对象列表?

我的实际代码是:


this.activities$
.pipe(map((e) => e.map((e) => e)))
.subscribe((e) => (this.dati = e));
this.aggregated = this.dati.reduce((acc: DataTable[], activity) => {
const projectName = `${activity.project?.customer.name} - ${activity.project?.name}`;
acc[projectName] = (acc[projectName] ?? 0) + activity.hours;
return acc
});
}, {});

试试这个。它以数组的形式获取键。

let sourceObj = {
Name1: 9,
Name2: 10,
Name3: 30,
}
let formattedObj = Object.keys(sourceObj).map(k => { return { project: k, hours: sourceObj[k] } })

最新更新