我有一个具有 3 个属性名称的对象数组
1.名称 2.团队 3.年龄
我想要同时包含年龄和团队的分组。我已经完成了与团队的分组,但我很困惑如何在当前的代码中同时包含团队和年龄的分组。
我需要用团队名称来显示团队的年龄。请建议我该怎么办?
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/