javascript - 如何使用 AngularJS 在 Angular 过滤器中按 2 列进行分组

标签 javascript angularjs angular-filters

我有一个具有 3 个属性名称的对象数组

1.名称 2.团队 3.年龄

http://jsfiddle.net/HpTDj/46/

我想要同时包含年龄和团队的分组。我已经完成了与团队的分组,但我很困惑如何在当前的代码中同时包含团队和年龄的分组。

我需要用团队名称来显示团队的年龄。请建议我该怎么办?

JS:

 $scope.MyList = [
    {name: 'Gene', team: 'alpha', age: 19},
      {name: 'George', team: 'beta', age: 19},
      {name: 'Steve', team: 'gamma', age: 23},
      {name: 'Paula', team: 'beta', age: 23},
      {name: 'Scruath', team: 'gamma', age: 23},
      {name: 'Scruath 1', team: 'gamma', age: 22},
      {name: 'Scruath 2', team: 'gamma', age: 22}
                    ];
    $scope.getGroups = function () {
        var groupArray = [];
        angular.forEach($scope.MyList, function (item, idx) {
            if (groupArray.indexOf(item.team) == -1){ groupArray.push(item.team)
            }
        });
        return groupArray.sort();
    }

HTML:

  <div ng-repeat='group in getGroups()'>
             <h2>{{group}}</h2>
              <ul>
                <li ng-repeat="item in MyList |  groupby:group">{{item.name}}</li>
            </ul>
        </div>

最佳答案

你可以这样做

 <ul ng-repeat="(key, value) in MyList | groupBy: '[team,name]'">
 <b>Group name: {{key}}</b>
 <br>
 <li ng-repeat="player in value">
  <b>player:</b> {{ player.name }} 
  <br>
  <b>team:</b> {{player.team}} 
 </li>
</ul>

欲了解更多详情,您可以see this

关于javascript - 如何使用 AngularJS 在 Angular 过滤器中按 2 列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45978918/

相关文章:

angularjs - 如何在 Angular 滤镜功能而不是自定义滤镜中传递多个参数

javascript - $filter ('date' ) 在 Controller 中使用 $scope 变量作为格式时不更新格式

javascript - 查询 flickr api

javascript - 为公共(public) API GET 请求构建 JQuery getJSON 的查询字符串

JavaScript 保留字 : "preset"

javascript - AngularJs ng-model 从 json 绑定(bind)

javascript - 如何将对象发送到复选框上的 Angular Directive(指令)

javascript - 如何在 array.map() 中返回动态对象键

javascript - AngularJS:应用货币过滤器返回自定义过滤器的值

javascript - jQuery .remove() 在使用 .prepend() 后不起作用