Как удалить пустые списки из списка в Dart?

#flutter #dart #flutter-dependencies #flutter-test #dart-pub

Вопрос:

У меня есть проблема в моей программе по дартсу. Вот список смайликов:

 [[🐃, 💧, 💦], [], [🌵, 🎄, 🌲], [], [], []] //List
 

Внутри списка есть несколько списков (как вы можете видеть). Я хочу удалить пустые списки [] . Также я хочу присоединиться [🐃, 💧, 💦, 🌵, 🎄, 🌲] в единый список.

Комментарии:

1. проверка List.where и List.fold / List.reduce методы — подробнее: Повторяющиеся коллекции

2. Не Работает. Можете Ли Вы Объяснить мне Лучше

3. List<List> l = [[1,2,3], [], [4,5], [], [6]]; var merged = l.reduce((a, b) => a b); print(merged);

4. var flattened = [for (var sublist in list) ...sublist];

Ответ №1:

Полное Решение:

 var data = [['🐃', '💧', '💦'], [], ['🌵', '🎄', '🌲'], [], [], []];

void main() {
  var newData = data.expand((x) => x).toList();
  print(newData);
}
 

Вот newData ваш окончательный ответ: [🐃, 💧, 💦, 🌵, 🎄, 🌲] .

Комментарии:

1. Это очень помогло, Но не могли бы Вы объяснить мне, почему в этом списке используется «x»

2. Здесь x относится к отдельному элементу вашего data списка. Вы можете посмотреть здесь .

3. Например, «я» у нас в петлях?

4. Вы не можете сказать i , потому i что ссылается на индекс в основном в цикле. Здесь x показан этот отдельный элемент. Для вашего данного случая на первой итерации значение x будет равно ['🐃', '💧', '💦'] , на второй итерации значение x будет равно [] , для третьей ['🌵', '🎄', '🌲'] и так далее.

Ответ №2:

Вы можете сделать это в одной строке:

 yourData.expand((x) => x).toList();
 

Комментарии:

1. Люблю тебя, Большое спасибо, это мне так помогло