如何在Angular 2中执行groupBy操作?

plo*_*ne1 8 javascript group-by typescript angular

Angular 2:2.0.0-alpha.31/Typescript 1.5

我从http.get查询中请求了数据

this.http.get('/data/players.json')
                  .toRx()
                  .map((res) => res.json())
                  .subscribe((data) => {
                        this.players = data;
                  });
Run Code Online (Sandbox Code Playgroud)

这个查询返回给我这个Json对象(this.players)

[
  {"team":"teamA","name":"player1","age":"1"},
  {"team":"teamA","name":"player2","age":"1"},
  {"team":"teamA","name":"player3","age":"1"},
  {"team":"teamB","name":"player4","age":"1"},
  {"team":"teamB","name":"player5","age":"1"}
]
Run Code Online (Sandbox Code Playgroud)

然后我想显示按团队分组的玩家

teamA: player1,player2,player3
teamB: player4,player5
Run Code Online (Sandbox Code Playgroud)

我如何groupBy teamAngular2上(直接进入@View?)?

UPDATE

我在Angular 1上看到了这个,可以在使用| groupBy:'propertyName'ngFor 的视图中完成.Angular 2上有这样的东西吗?

tir*_*011 0

你可以使用过滤器吗?

var test = [
  {"team":"teamA","name":"player1","age":"1"},
  {"team":"teamA","name":"player2","age":"1"},
  {"team":"teamA","name":"player3","age":"1"},
  {"team":"teamB","name":"player4","age":"1"},
  {"team":"teamB","name":"player5","age":"1"}
];

function FilterByTeam(obj){
    console.log(obj);
    return obj.team === "teamA";
 }

 var teamA = test.filter(FilterByTeam);
 console.log(teamA)
Run Code Online (Sandbox Code Playgroud)