简单而简单我想为足球联赛建立一个积分榜。我的想法是构建一个带有标签(teamName)和一个对象(teamCompetitionStats)的地图。所以我创建了一个这样的类:
export class TeamCompetitionStats {
teamMatches: number;
teamPoints: number;
}
我的想法是创建一个包含团队名称的地图,以及像这样的团队竞赛统计数据:
map('Barcelona', TeamCompetitionStats)
所以当我遍历每场比赛时,我会检查我是否有团队,如果没有,我会使用teamName + TeamCompetitionStats向地图添加一个条目,如果它已经存在,我会更新TeamCompetitionStats中的值。
问题在于我不知道如何更新地图中对象的值(在本例中为TeamCompetitionStats)。
不是特别寻找一段代码,而只是审查是否有可能并且我在正确的道路上或
有更好的方法吗?
答案 0 :(得分:1)
检查对象是否与has一起存储。
如果是更新所述对象,如果没有则存储它。
let a = myMap.get(whatever)
if(a)
updateItem(a)
else
map.set(key, val);
有更好的方法吗?
Imo,简单对象适用于这种情况。
let teams = {"teamA": "sickteam", "teamB": "not so sick"};
if (teams["teamC"])
teams["teamC"] = "team of clownssssss";
else
teams["teamC"] = "team of clowns";
答案 1 :(得分:0)
当然可以。查看Object.assign。
您的来源是您的新数据,目标是整体对象。如果源不匹配目标中的任何内容,则会添加它。如果它与目标中的某些内容匹配,则会更新。
如果目标对象中的属性具有相同的键,则它们将被源中的属性覆盖。后来的消息来源'属性将类似地覆盖先前的属性。