如何从 Dart 中的列表中删除空列表?
Posted
技术标签:
【中文标题】如何从 Dart 中的列表中删除空列表?【英文标题】:How to remove empty lists from a list in Dart? 【发布时间】:2021-07-11 07:53:14 【问题描述】:我的 Dart 程序有问题。以下是表情符号列表:
[[????, ????, ????], [], [????, ????, ????], [], [], []] //List
列表内有多个列表(如您所见)。我想删除空列表[]
。我还想将 [????, ??????, ??????, ????, ????, ????] 加入到一个列表中。
【问题讨论】:
检查List.where
和 List.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];
【参考方案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();
【讨论】:
爱你,非常感谢,这对我帮助很大以上是关于如何从 Dart 中的列表中删除空列表?的主要内容,如果未能解决你的问题,请参考以下文章