javascript - Angular 2合并相同的变量号
问题描述
我从这样的数据库中获取数字:
getTeamPoints(team) {
console.log(team);
let a = (<any>Object).values(team.tasks).reduce((total, entry) => total + entry.pt, 0);
console.log('a = ',a)
}
对于number
我得到的每个value
(仅示例不是真实值):
a = 10;
a = 15;
a = 20;
a = 5;
a = 0;
merge
那些a
将number
是 -的人怎么10+15+20+5+0 = 50
样?
编辑:console.log(团队):
{"members":{"-LT8U_zn5T9HuSlh03lw":{"name":"Andrius"}},"name":"Frontas","tasks":{"-LT8UbPIJMrR52P4hvHJ":{"name":"Jobas","pt":5},"-LT8UcOAvqPk_o3fUl7y":{"name":"Jobas2","pt":5}}}
{"members":{"-LT8UenQm-WzElOQhIrX":{"name":"Tomas"}},"name":"Backas","tasks":{"-LT8UfmIezqiMDv3WCpA":{"name":"Jobas3","pt":5}}}
{"members":{"-LT986cZrN6Q1sqIjMZF":{"name":"AAA"}},"name":"Tetas","tasks":{"-LT988EvCySLOutd5AVK":{"done":true,"name":"Jobas","pt":15},"-LT989cIEqr4ObqNyfiA":{"done":false,"name":"XX","pt":16}}}
编辑:循环团队:
<mat-card-content *ngFor="let team of objectValues(project[2])>
<h2 class="right-text">{{getTeamPoints(team)}}%</h2>
</mat-card-content>
编辑:objectValues 函数:
objectValues(obj) {
if(obj){
return Object.values(obj);
}
控制台日志(团队):
["teams",{"members":{"-LT8U_zn5T9HuSlh03lw":{"name":"Andrius"}},"name":"Frontas","tasks":{"-LT8UbPIJMrR52P4hvHJ":{"name":"Jobas","pt":5},"-LT8UcOAvqPk_o3fUl7y":{"name":"Jobas2","pt":5}}},{"members":{"-LT8UenQm-WzElOQhIrX":{"name":"Tomas"}},"name":"Backas","tasks":{"-LT8UfmIezqiMDv3WCpA":{"name":"Jobas3","pt":5}}},{"members":{"-LT986cZrN6Q1sqIjMZF":{"name":"AAA"}},"name":"Tetas","tasks":{"-LT988EvCySLOutd5AVK":{"done":true,"name":"Jobas","pt":15},"-LT989cIEqr4ObqNyfiA":{"done":false,"name":"XX","pt":16}}}]
解决方案
像这样更改您的组件:
<mat-card-content>
<h2 class="right-text">
{{ getProjectTeamsTotalPoints(objectValues(project[2])) }}
</h2>
</mat-card-content>
并在您的课程中添加此方法:
getProjectTeamsTotalPoints(teams): number {
return teams.reduce((total, team) => {
if (!team || !team.tasks) {
return total;
}
return Object.values(team.tasks).reduce((pts, task) => {
return pts + task.pt;
}, total);
}, 0);
}
还要更新您的 objectValues 函数以始终返回一个数组:
objectValues(obj) {
return Object.values(obj || {});
}
基本上,您减少团队并为每个团队减少他们的分数,这样您就可以获得项目的总摘要。
推荐阅读
- python - 转换数据帧“to_csv”时如何在数值前面填充零?
- android - 在 Appcelerator Studio 中运行项目时出错
- xamarin.forms - ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交
- if-statement - 如何根据其他单元格值在具有背景颜色计数的谷歌工作表中计数或 sumif
- docx4j - 在最新版本的 xlsx4j 中为空 JaxbSmlPart
- vue.js - 处理 vue 中的组件的最佳解决方案是什么?
- android-studio - 当我尝试同步 Gradle 文件时出现以下错误:错误:无法解决:android.recyclerview:recyclerview: Affected Modules: app
- firebase - 如何从 Google Cloud IoT 核心获取活动设备列表
- ios - 绕过“使用 Apple 登录”
- java - 有没有办法在有或没有反射的情况下访问内部类中的私有方法