【问题标题】:how to group json data in angularjs如何在angularjs中对json数据进行分组
【发布时间】:2016-10-09 14:25:53
【问题描述】:
  [{name: 'A', team: 'team alpha', value:"10"},
  {name: 'A', team: 'team beta' value:"20"},
    {name: 'A', team: 'team gamma' value:"40"},
  {name: 'B', team: 'team alpha' value:"15"},
  {name: 'B', team: 'team beta' value:"25"},
  {name: 'C ', team: 'team alpha' value:"30"}];

我想以这样一种方式对我的 dat 进行分组,以便获得以下结构:

    name:A
    team alpha: 10
    team beta: 20
    team gamma:40

   name:B
    team alpha:15
    team beta:25

   name:C
   team alpha:30

我在网上查了一下,但找不到对这种结构进行分组的方法。有没有办法可以以上述格式对 angularjs 中的数据进行分组或过滤。任何帮助,将不胜感激。

【问题讨论】:

  • 需要根据队名取值吗?你没有尝试循环和条件吗?
  • @DinithMinura 这会使事情复杂化很多,而且似乎不是一个可行的解决方案。

标签: javascript angularjs json jsfiddle angularjs-filter


【解决方案1】:

Working Demo

HTML

<ul ng-repeat="(key, value) in players | groupBy: 'name'">
  <li>name: {{ key }}
     <ul>
        <li ng-repeat="player in value">
          {{ player.team }} : {{player.value}} 
        </li>
     </ul>
  </li>
</ul>

JavaScript:

$scope.players = [
      {name: 'A', team: 'team alpha', value:10},
      {name: 'A', team: 'team beta',value:20},
      {name: 'A', team: 'team gamma',value:40},
      {name: 'B', team: 'team alpha',value:15},
      {name: 'B', team: 'team beta',value:25},
      {name: 'C', team: 'team alpha',value:30}
    ];

详情请have a look at this answer

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2020-06-12
    • 2014-07-17
    • 1970-01-01
    • 2016-02-17
    • 2017-09-01
    相关资源
    最近更新 更多