javascript - 从 reduce [Angular] 返回对象
问题描述
我想返回一个带有reduce函数的对象列表。我想要一个对象列表,例如:
[{project: nameProj, hours: numProj}, {project: nameProj, hours: numProj},{project: nameProj, hours: numProj}]
实际上我只返回一个对象,其中键是项目名称,值是小时:
{
Name1: 9,
Name2: 10,
Name3: 30,
}
我如何从reduce函数返回对象列表?
我的实际代码是:
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] } })
推荐阅读
- c++ - std::vector 中的初始化列表构造函数
- python - 根据python字典中的条件添加键值
- r - 无标签 XML
- python - 遍历 PySpark Frame 中的每一行,并返回在确定的时间范围之外操作 +-5 分钟的用户的不同计数
- emacs - 返回 cdr 的点完成函数
- python - 使用线程池下载多个 url
- vba - 单击功能区按钮时禁用多个按钮
- python - 从 html 输入标签中的 django 日期时间字段渲染时间时出现问题
- c# - 在没有内存泄漏的情况下在 NPOCO C# 模型中同时维护 FK 属性和连接对象?
- python - 如何将 STL 文件转换为大小为 256x256x256 的 numpy 数组?