Список фильтров Dart с функцией карты: подробное руководство по фильтрации и преобразованию данных

В программировании на Dart фильтрация и преобразование списков — обычная задача. Комбинация функций filter()и map()обеспечивает мощный способ достижения этой цели. В этой статье мы рассмотрим несколько методов фильтрации списков с помощью функции карты, сопровождаемые примерами кода. Независимо от того, являетесь ли вы новичком или опытным разработчиком Dart, это руководство поможет вам понять и эффективно применять эти методы.

Методы фильтрации списков с помощью карты в Dart:

Метод 1: использование where()и map()

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
List<int> filteredNumbers = numbers.where((number) => number % 2 == 0).toList();
List<String> transformedNumbers = filteredNumbers.map((number) => 'Number: $number').toList();
print(transformedNumbers); // Output: [Number: 2, Number: 4, Number: 6, Number: 8, Number: 10]

Метод 2: использование expand()и where()

List<List<int>> matrix = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
List<int> filteredMatrix = matrix.expand((row) => row).where((number) => number % 2 == 0).toList();
print(filteredMatrix); // Output: [2, 4, 6, 8, 10]

Метод 3: использование fold(), where()и map()

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
List<String> filteredAndTransformedNumbers = numbers.fold<List<String>>([], (result, number) {
  if (number % 2 == 0) {
    result.add('Number: $number');
  }
  return result;
});
print(filteredAndTransformedNumbers); // Output: [Number: 2, Number: 4, Number: 6, Number: 8, Number: 10]

Метод 4. Использование пользовательской функции с map()

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
List<int> filteredNumbers = numbers.map((number) {
  if (number % 2 == 0) {
    return number;
  }
  return null;
}).where((number) => number != null).toList();
print(filteredNumbers); // Output: [2, 4, 6, 8, 10]

В этой статье мы рассмотрели несколько методов фильтрации списков с помощью функции карты в Dart. Мы рассмотрели различные подходы, например использование where()и map(), expand()и where(), fold()и пользовательскую функцию с map(). Эти методы обеспечивают гибкость и эффективность фильтрации и преобразования данных в Dart. Используя функцию карты вместе с другими функциями манипулирования списками, вы можете легко и эффективно выполнять сложные задачи.