0

我有以下種類的JSON,我想找到與JSON的Status : 1對象的數量,我已經嘗試了下面的方法,它不工作。角度JS控制器與JSON陣列的對象過濾器

而且我知道NG-過濾器需要僅適用於數組,但我沒有找到一個方法來做到這一點在下面的JSON數據,有人可以幫助我

預期我得到錯誤,但如何解決這個問題在我的情況

[filter:notarray] Expected array but received:

Plunker Demo

在下面的JSON數據正如你看到的我有陣列陣列,我應該得到的 伯爵狀態值爲1

期望輸出

計數第一陣列的:第二陣列的1個 計數:1

JSON數據

[ 
    [{ 
    "id": 252323, 
    "orderId": 223505, 
    "status": 1, 
    "executedOn": "13/Sep/17", 
    "executedBy": "Person A", 
    "executedByDisplay": "Person A", 
    "cycleId": 3994, 
    "cycleName": "Cycle A", 
    "versionId": 21291, 
    "versionName": "Version A", 
    "issueKey": "Key-12561" 
    }], 
    [{ 
    "id": 253077, 
    "orderId": 224047, 
    "status": 1, 
    "executedOn": "26/Sep/17", 
    "executedBy": "Person B", 
    "executedByDisplay": "Person B", 
    "cycleId": 4012, 
    "cycleName": "Cycle B", 
    "versionId": 22912, 
    "versionName": "Version B", 
    "issueKey": "Key-12580" 
    }, { 
    "id": 253076, 
    "orderId": 224046, 
    "status": 2, 
    "executedOn": "20/Sep/17", 
    "executedBy": "Person B", 
    "executedByDisplay": "Person B", 
    "cycleId": 4012, 
    "cycleName": "Cycle B", 
    "versionId": 22912, 
    "versionName": "Version B", 
    "issueKey": "Key-12578" 
    }, { 
    "id": 253075, 
    "orderId": 224045, 
    "status": 1, 
    "executedOn": "20/Sep/17", 
    "executedBy": "Person B", 
    "executedByDisplay": "Person B", 
    "cycleId": 4012, 
    "cycleName": "Cycle B", 
    "versionId": 22912, 
    "versionName": "Version B", 
    "issueKey": "Key-12582" 
    }, { 
    "id": 253074, 
    "orderId": 224044, 
    "status": 1, 
    "executedOn": "20/Sep/17", 
    "executedBy": "Person B", 
    "executedByDisplay": "Person B", 
    "cycleId": 4012, 
    "cycleName": "Cycle B", 
    "versionId": 22912, 
    "versionName": "Version B", 
    "issueKey": "Key-12584" 
    }], 
    [{ 
    "id": 255168, 
    "orderId": 226138, 
    "status": 1, 
    "executedOn": "26/Sep/17", 
    "executedBy": "Person A", 
    "executedByDisplay": "Person A", 
    "cycleId": 4022, 
    "cycleName": "Cycle C", 
    "versionId": 21291, 
    "versionName": "Version A", 
    "issueKey": "Key-12617" 
    }] 
] 
:第三陣列的3 計數

Angular JS Code

var app = angular.module('studentApp', []); 

app.controller('StudentCntrl', function($scope, $http, $filter) { 
    $http.get('data.json').then(function(response) { 

    $scope.value = response.data; 

    $scope.value.forEach(function(items) { 
     $scope.eachValue = items; 
     items.forEach(function(insideItems) { 
     passvalue = $filter('filter')(insideItems, function(inputs) { 
      if (inputs.status == '1') 
      console.log(inputs.length); 
      return inputs; 
     }); 
     }); 

    }); 
    }); 
}); 

回答

2

,你可以簡單地使用java script array filter

arr.filter(function(a){return a.status==1}).length 

或者用角

$filter('filter')(v, function(vc) {return vc.status ==1}).length 

Here is working demo

+0

由於這是我想要的!有沒有什麼辦法,我可以實現與角js過濾相同的東西 – Batman

+0

亞肯定檢查更新的答案 – jitender

+0

謝謝它的作品像魅力! – Batman