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