【问题标题】:How to remove empty lists from a list in Dart?如何从 Dart 中的列表中删除空列表?
【发布时间】:2021-07-11 07:53:14
【问题描述】:

我的 Dart 程序有问题。以下是表情符号列表:

[[????, ????, ????], [], [????, ????, ????], [], [], []] //List

列表内有多个列表(如您所见)。我想删除空列表[]。我还想将 [????, ??????, ??????, ????, ????, ????] 加入到一个列表中。

【问题讨论】:

  • 检查 List.whereList.fold / List.reduce 方法 - 更多:Iterable collections
  • 不工作。你能解释清楚吗
  • List<List> l = [[1,2,3], [], [4,5], [], [6]]; var merged = l.reduce((a, b) => a + b); print(merged);
  • var flattened = [for (var sublist in list) ...sublist];

标签: flutter dart flutter-dependencies flutter-test dart-pub


【解决方案1】:

完整解决方案

var data = [['?', '?', '?'], [], ['?', '?', '?'], [], [], []];

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

这里,newData 是您的最终答案:[?, ?, ?, ?, ?, ?]

【讨论】:

  • 这帮助很大,但你能解释一下 Yatinj 为什么在这个列表中使用“x”
  • 这里,x 指的是您的data 列表中的单个元素。你可以看到here
  • 比如,我们有循环中的“i”?
  • 你不能说i,因为i基本上是指循环中的一个索引。这里x 显示了单个元素。对于您给定的情况,在第一次迭代中,x 的值将是 ['?', '?', '?'],在第二次迭代中,x 的值将是 [],第三次 ['?', '?', '?'] 等等。跨度>
【解决方案2】:

你可以在一行中做到这一点:

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

【讨论】:

  • 爱你,非常感谢,这对我帮助很大
猜你喜欢
  • 2022-06-17
  • 2015-09-20
  • 2017-03-05
  • 2014-01-06
  • 2017-11-02
  • 2022-11-01
  • 2016-02-17
  • 2021-12-10
  • 1970-01-01
相关资源
最近更新 更多