在ng-repeat中显示具有重复出现次数的唯一项目

Ang*_*yJS 3 angularjs ng-repeat angularjs-ng-repeat angularjs-filter

我有一个低于JSON:

[{"brand":"abc"},{"brand":"xyz"},{"brand":"abc"},{"brand":"abc"},{"brand":"por"},{"brand":"xyz"}]
Run Code Online (Sandbox Code Playgroud)

使用ng-repeat,我如何显示像 -

Brand Occurances
abc      (3)
xyz      (2)
por      (1)
Run Code Online (Sandbox Code Playgroud)

即品牌名称(同一品牌名称的重复出现次数)?

Dha*_*hak 5

您可以创建一个自定义函数,该函数将使用repeatvie值从现有数组返回计数(出现)

与过滤器一起显示JSON中的唯一值:

$scope.getCount = function(i) {
    var iCount = iCount || 0;
    for (var j = 0; j < $scope.brands.length; j++) {
      if ($scope.brands[j].brand == i) {
        iCount++;
      }
    }
    return iCount;
  }
Run Code Online (Sandbox Code Playgroud)

AND过滤器将如下所示:

app.filter('unique', function() {

  return function (arr, field) {
    var o = {}, i, l = arr.length, r = [];
    for(i=0; i<l;i+=1) {
      o[arr[i][field]] = arr[i];
    }
    for(i in o) {
      r.push(o[i]);
    }
    return r;
  };
})
Run Code Online (Sandbox Code Playgroud)

工作Plunkr