javascript - 在angular2中查找具有相同名称的对象数组的值的总和
问题描述
我有一个要求,我需要在具有相同名称的不同对象中找到 amt 的值的总和。下面是代码片段
traveler = [
{ description: 'Senior', Amount: 50},
{ description: 'Senior', Amount: 50},
{ description: 'Adult', Amount: 75},
{ description: 'Child', Amount: 35},
{ description: 'Infant', Amount: 25 },
];
在这里,我想计算具有相同描述的不同对象中 Amount 的总和。例如:对象 0 和 1 包含相同的描述“高级”,因此总 amt 为 100
如何在angular2中实现这一点?
我应该使用内部forloops还是有更好的方法?请帮我
解决方案
您可以使用 aMap
来收集值并使用分组结果呈现对象数组。
var traveler = [{ description: 'Senior', amount: 50 }, { description: 'Senior', amount: 50 }, { description: 'Adult', amount: 75 }, { description: 'Child', amount: 35 }, { description: 'Infant', amount: 25 }],
grouped = Array.from(
traveler.reduce(
(m, { description, amount }) => m.set(description, (m.get(description) || 0) + amount),
new Map
).entries(),
([description, amount]) => ({ description, amount })
);
console.log(grouped);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- python - 如何在python中用KNN填充缺失值
- splunk - 使用 API 导出 Splunk 数据
- android - 请求权限创建文件夹外部存储
- visual-studio-code - 如何使用 VS Code 的 sftp 同步扩展同步文件
- three.js - React-three-fiber - 在输入框中键入时禁用键盘控制
- python - 从任务计划程序(在 Windows 中)或 SQL Server 代理运行 os.system(用于命令行)
- networkx - 社区检测 Louvain 算法的模块化在添加边权重时不会改变
- python - Python 没有使用 pandas 将 io.Bytes 变量转换为数据帧
- mysql - MY SQL Workbench:执行 SQL 脚本文件后出错
- postgresql - 如何使用 psql 在 URI 中指定模式?