Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS在数据集中显示最大重复次数属性_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS在数据集中显示最大重复次数属性

Javascript AngularJS在数据集中显示最大重复次数属性,javascript,angularjs,Javascript,Angularjs,我正在使用ng repeat来显示数据,我希望能够识别在每个项目中出现次数最多的名称(或者如果是并列的,则显示多个结果) 我不知道一个角度指令,将执行这个开箱即用。有吗 样本数据集: { item1: [{ name: 'Bob', date: '2015-12-17' }, { name: 'Steve', date: '2015-12-17' }, { name: 'Bob', date: '2015-12-15' }, {

我正在使用
ng repeat
来显示数据,我希望能够识别在每个项目中出现次数最多的名称(或者如果是并列的,则显示多个结果)

我不知道一个角度指令,将执行这个开箱即用。有吗

样本数据集:

{
 item1: [{
    name: 'Bob',
    date: '2015-12-17'
  }, {
    name: 'Steve',
    date: '2015-12-17'
  }, {
    name: 'Bob',
    date: '2015-12-15'
  }, {
    name: 'Steve',
    date: '2015-12-13'
  }, {
    name: 'Bob',
    date: '2015-12-10'
  }],
 item2: [{
    name: 'Rachel',
    date: '2015-12-14'
  }, {
    name: 'Steve',
    date: '2015-12-17'
  }, {
    name: 'Bob',
    date: '2015-12-15'
  }]
}

我认为您可以使用过滤器来完成此操作,下面是一个示例:

关于自定义筛选器:

angular.module('App', []).controller(MainController);

angular.module('App').filter('checkmark', function() {
  return function(input) {
    console.log(input);
    var max = {
    };

    var maxCount = 0;
    var winner = {};

    input.forEach(function(value, index) {

        if (!max[value.name]) {
          //max.name = value.name;
          max[value.name] = 1;
          winner = value;
          maxCount = 1;

        } else {

          max[value.name]++;
          if (max[value.name] > maxCount) {
            winner = value;
            maxCount = max[value.name];
          }
        }

    });

    //console.log(max);
    console.log(winner);

    return winner.name + "(" + maxCount + ")";

  };
});

function MainController($scope) {

    $scope.data = {
 item1: [{
    name: 'Bob',
    date: '2015-12-17'
  }, {
    name: 'Steve',
    date: '2015-12-17'
  }, {
    name: 'Bob',
    date: '2015-12-15'
  }, {
    name: 'Steve',
    date: '2015-12-13'
  }, {
    name: 'Bob',
    date: '2015-12-10'
  }],
 item2: [{
    name: 'Rachel',
    date: '2015-12-14'
  }, {
    name: 'Steve',
    date: '2015-12-17'
  }, {
    name: 'Bob',
    date: '2015-12-15'
  }]
};



}