Javascript 如何在typescript中对值进行分组和求和

Javascript 如何在typescript中对值进行分组和求和,javascript,angular,typescript,Javascript,Angular,Typescript,我试图得到唯一的用户名和他们的总时间,但不知道如何实现这一点。 我已经做的是一个数组的唯一名称,但不知道如何获得总和。 我认为这应该通过使用字典这样的结构来实现。 字典但typescript中似乎不存在此结构 let json=[{“用户”:“汤姆·史密斯”,“小时数”:6},{“用户”:“马克·扎克伯格”,“小时数”:8},{“用户”:“埃隆·马斯克”,“小时数”:12},{“用户”:“汤姆·史密斯”,“小时数”:1},{“用户”:“汤姆·史密斯”,“小时数”:1}]; for(var i=0

我试图得到唯一的用户名和他们的总时间,但不知道如何实现这一点。 我已经做的是一个数组的唯一名称,但不知道如何获得总和。 我认为这应该通过使用字典这样的结构来实现。
字典
但typescript中似乎不存在此结构

let json=[{“用户”:“汤姆·史密斯”,“小时数”:6},{“用户”:“马克·扎克伯格”,“小时数”:8},{“用户”:“埃隆·马斯克”,“小时数”:12},{“用户”:“汤姆·史密斯”,“小时数”:1},{“用户”:“汤姆·史密斯”,“小时数”:1}];
for(var i=0;ia==json[i].User))
{
userNames.push(json[i].User);
}
}
结果应该是:

  • 汤姆·史密斯→ 8小时
  • 马克·扎克伯格→ 8小时
  • 埃隆麝香→ 12小时

    • 它被称为
      Map

       const usernames = new Map<string, number>();
      
       for(const {User, Hours} of json) 
         usernames.set(User, (usernames.get(User) || 0) + Hours);
      
       console.log([...usernames]);
      
      const usernames=newmap();
      for(json的常量{User,Hours})
      usernames.set(User,(usernames.get(User)| | 0)+小时);
      log([…用户名]);
      
      哇,这就是我一直在寻找的东西!这是可行的,但为了更好的可读性,我简化了json的结构。如果结构稍微复杂一点/嵌套一点怎么办?没关系,我发现我所要做的就是在for循环中传递正确的路径。再次感谢乔纳斯@泰尔科纳奇很乐意帮忙:)