2016-11-01 10 views
0
を持つオブジェクトの数を取得する方法

は、誰もが私がステータスに提出されたどのように多くを知りたいと思ったJSONの下からステータスフィールド角度でJSONの特定の値JS

のカウントを得ることに私を助けることができます=オープンとクローズとAnular JSの値

角度JS(ここで私はURLからJSON値を取得していますし、それがJSONデータの下

var app = angular.module('defectApp', ["ngTable"]); 
app.controller('defectController', [ 
    '$scope', 
    '$http', 
    function($scope, $http) { 
     $http({method: 'POST', url: '/angular/defect/defect.json'}).success(function(response) { 
      $scope.post = response; 

     }) 
    }, 
]); 
が含まれているを取得できますか

を割り当て

JSONデータが

{ 
    "data": [ 
    { 
     "type": "defect", 
     "id": 1, 
     "user-01": "John", 
     "status": "Open", 
     "severity": "1 - Urgent" 
    }, 
    { 
     "type": "defect", 
     "id": 2, 
     "user-01": "John", 
     "status": "Open", 
     "severity": "3 - High" 
    }, 
    { 
     "type": "defect", 
     "id": 3, 
     "user-01": "John", 
     "status": "Assigned", 
     "severity": "3 - High" 
    }, 
    { 
     "type": "defect", 
     "id": 4, 
     "user-01": "John", 
     "status": "Closed", 
     "severity": "4 - Medium" 
    }, 
    { 
     "type": "defect", 
     "id": 5, 
     "user-01": "John", 
     "status": "Closed", 
     "severity": "4 - Medium" 
    } 
    ] 
} 
+0

[配列内のいくつかのプロパティを持つ項目の数を取得]の可能な複製(http://stackoverflow.com/questions/15360256/get-count-of-items-with-some-property-in-an-array ) – manzapanza

+0

@manzapanza JSONデータにこのような質問をしてきました。非常に多くのフィールドがあります。このようなすべての関数を処理する方法はありますか?Count = Statusなどの数値を計算します。 – Batman

答えて

3

あなたは角度の$filterサービスを使用することができます。

var openCount = $filter('filter')(response.data, {status: 'Open'}).length, 
    closedCount = $filter('filter')(response.data, {status: 'Closed'}).length, 
    assignedCount = $filter('filter')(response.data, {status: 'Assigned'}).length; 

フィルターを使用すると、特定のステータスのオブジェクトだけに配列が縮小されます。その場合、配列内の数値を数えることができます。

+0

ありがとうStatus = Assignedの値がない場合、 '0'として返す方法があるとします。 – Batman

+1

フィルタから一致するものがなければ、空の配列を返す必要があり、したがってカウントは0になります。 – Ankh