Библиотеки » Основная библиотека (dart:core) » Iterable » where
функция Iterable::where
Фильтрует элементы коллекции с помощью пользовательской функции
Синтаксис
Iterable[E]
Iterable.where
(bool f(E element))
Передаваемые параметры
bool f(E element)Возвращаемое значение
Iterable[E]Описание
Метод where
позволяет получить новую коллекцию (составной объект), содержащий только те элементы исходной коллекции, для которых пользовательская callback-функция bool f(E element)
возвращает true
.
Данный метод использует "ленивую" инициализацию новой коллекции. До тех пор, пока к элементам нового объекта не будет ни одного обращения, пользовательская функция bool f(E element)
вызываться не будет и новые значения получены не будут. Кроме этого, значения элементов не будут кешироваться, и таким образом повторная итерация по новой коллекции будет приводить к повторному вызову пользовательской callback-функции.
Заметки
Пример
void print_array(array) {
for(var x in array) {
print (x);
}
}
void main() {
// инициализируем массив с данными
var array = [0,1,2,3,4,5,6,7,8,9];
// добавляем в новую коллекцию, только четные числа
// получаем массив [0,2,4,6,8]
print_array(
array.filter(
(arrayItem) {
return ((arrayItem % 2) == 0);
}
)
);
// добавляем в новую коллекцию только строки содержащие букву 'o'
// получаем массив ['orange','lemon','tomato']
print_array(
['apple','orange','lemon','tomato'].filter(
(arrayItem) {
return arrayItem.contains('o');
}
)
);
}
Смотрите также
Iterable::firstWhere - Возвращает первый элемент коллекции, удовлетворяющий пользовательской функции
Iterable::lastWhere - Возвращает последний элемент коллекции, удовлетворяющий пользовательской функции
Iterable::singleWhere - Возвращает элемент, удовлетворяющий пользовательской функции