2014-09-22 41 views
0

我有一个JSON数组,我想获得具有'type'的对象:'optional'。我如何实现在Angular JS中使用forEach?请帮助我..使用forEach循环处理JSON

请找到JSON阵列

$scope.headerAll= 

[ 
    { 
    "field": "first_name", 
    "displayName": "First name", 
    "type": "required" 
    }, 
    { 
    "field": "last_name", 
    "displayName": "Last Name", 
    "type": "required" 
    }, 
    { 
    "field": "email", 
    "displayName": "Email", 
    "type": "required" 
    }, 
    { 
    "field": "isMarried", 
    "displayName": "marital Status", 
    "type": "optional" 
    } 
] 
+0

如果你想要做的视图本身的过滤(ngRepeat)看看这个例子 - http://stackoverflow.com/questions/14733136/angular-js-ng-repeat-按字段筛选 – 2014-09-22 09:46:43

回答

0

它的有点快,更安全的解决方案:

for (var i in $scope.headerAll){ 
    if ($scope.headerAll.hasOwnProperty(i) && $scope.headerAll[i].type === "optional"){ 
     console.log("do something"); 
    } 
    } 

你可以在这里检查性能

http://jsperf.com/angularjs-foreach-vs-native-foreach/5

plnkr

+0

1.1.5在您提供的比较中,这里有点过时了,请查看http://jsperf.com/angularjs-foreach-vs -native-foreach/23 – maurycy 2014-09-24 10:36:57

+0

以及Igor Minar所做的更好的测试:http://jsperf.com/angularjs-foreach-vs-native-foreach/21 – maurycy 2014-09-24 10:51:55

1

这是很容易做到这一点下面

$scope.optional = [] 
angular.forEach($scope.headerAll, function (v) { 
    if (v.type === 'optional') { 
    $scope.optional.push(v) 
    } 
}) 
+0

非常感谢...这帮了我 – user3777846 2014-09-22 09:59:26