2016-06-11 3 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.

Например:

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 проведет сбор адресов, которые имеют место с более чем 5 символов.

+0

Можете ли вы расширить –

+0

Конечно, будет редактировать свой ответ в минуту –

0

использование фильтра

$scope.addresses = $scope.addresses.filter(function(address){ 
    return address.location === x; 
}) 
Смежные вопросы