Angular:获取数组中实例的长度

时间:2014-03-01 07:44:05

标签: arrays angularjs

不确定如何解释它,但我想要做的是返回“Jack”是附加到我的数组中的winner属性的字符串的次数。

     function myCtrl($scope) {
       $scope.data = [{
         game: 1,
         dnscore: 10,
         bwscore: 9,
         winner: "Jack"
       }, {
         game: 2,
         dnscore: 9,
         bwscore: 10,
         winner: "Jill"
       }, {
         game: 3,
         dnscore: 9,
         bwscore: 10,
         winner: "Jill"
       }, {
         game: 4,
         dnscore: 6,
         bwscore: 10,
         winner: "Jill"
       }];
     };

然后能够将{{jackwins}}绑定到我的文档中。 任何和所有的帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

使用函数data更改add数组:

function myCtrl($scope) {
    $scope.data = [];
    $scope.add = function(dt){
        data.push(dt);
        if(dt.winner == "Jack")
            $scope.jackwins++;
    }
    $scope.jackwins = 0;
};

<强> UPD。 或者你可以通过功能来实现 - 这种方式更灵活

function myCtrl($scope) {
    $scope.data = [
        {winner:"Jack", ...},
        {winner:"Jimm", ...}
    ];
    $scope.getWinsCount = function(name){
        var c = 0;
        for(var i=0;i<$scope.data.length;i++){
            if(name==$scope.data[i].winner)
                c++;
        }
        return c;
    };
};

你是你的html,你可以这样称呼它<div>{{getWinsCount('Jack')}}</div>

答案 1 :(得分:1)

$scope.jackWinCount = function() {
    var result = 0;
    for (var i = 0; i < $scope.data.length; i++) {
        if ($scope.data[i].winner == "Jack") {
            result++;
        }
    }
    return result;
});

并在您的模板中:

{{ jackWinCount() }}

答案 2 :(得分:0)

如果您想以角度过滤数据,可以使用数组上的过滤器来过滤数据

以下是示例:

$scop.newFilterData=$filter("filter")($scope.data , {"winner": "Jill"});
{{$scop.newFilterData.length}}