2016-06-11 67 views
0

我正在使用下面的代码循环访问数组,并向数组中的每个项目添加一个属性。为AngularJS地图函数添加条件

$scope.addresses = $scope.addresses.map(function(address) { 
     address.location = "X"; 
     return address; 
}); 

这个在最后会返回所有的项目。我怎样才能给循环添加一个条件?所以我可以检查一个属性,并基于该属性返回只有某些地址,该属性是true

任何帮助表示赞赏!

回答

1

您应该使用filter功能

你可以阅读一下:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

基本上filter是一个函数获取一个布尔函数作为参数(姑且称之为f),并返回一个数组与f返回true的所有项目。

例如:

var mapped = $scope.addresses = $scope.addresses.map(function(address) { 
     address.location = "X"; 
     return address; 
}); 

var filtered = mapped.filter(function (address) { 
    return address.location.length > 5; 
}); 

filtered会认为,有超过500个字符的位置的地址的集合。

+0

能否请您展开 –

+0

当然,将编辑我的回答在一分钟 –

0

使用过滤器

$scope.addresses = $scope.addresses.filter(function(address){ 
    return address.location === x; 
})