从 Flutter 中的 List 获取一个子子项
Posted
技术标签:
【中文标题】从 Flutter 中的 List 获取一个子子项【英文标题】:Get a children childs from List in Flutter 【发布时间】:2022-01-15 09:11:41 【问题描述】:我无法从 Flutter 的列表中获取所有孩子。
List 结构如下所示:
列出_mainlist =
[element1: [null, "abc1", "abc2"], element2: [null, "abc3", "abc4"], ... ]
我的问题是如何让 List 看起来像这样:
["abc1", "abc2", "abc3", "abc4", ...]
我尝试使用此代码,但它不起作用
List mylist = _mainlist[0];
List alllist = [];
mylist.forEach((element)
alllist.add(element);
);
【问题讨论】:
【参考方案1】:如果您有 Map
而不是 List
,您也可以这样做:
void main()
final _mainlist = ['element1': [null, "abc1", "abc2"], 'element2': [null, "abc3", "abc4"],];
final allElements = _mainlist[0].values;
final allItems = [];
for (final element in allElements)
allItems.addAll(element.where((item) => item != null));
print(allItems);
编辑
如果你喜欢函数,你也可以使用
void main()
final _mainlist = ['element1': [null, "abc1", "abc2"], 'element2': [null, "abc3", "abc4"],];
final allItems = _mainlist[0].values.reduce((value, element)
value.addAll(element);
return value;
).where((item) => item != null).toList();
print(allItems);
【讨论】:
【参考方案2】:我假设你在这里得到一个列表列表,我也确信有更好的方法可以做到这一点,但至少可以让你得到更好的答案
var elementList = [
[null, "abc1", "abc2"],
[null, "abc3", "abc4"],
];
List allList = [];
for (final element in elementList)
for (final e in element.toList())
allList..addAll(e.where((x) => x != null));
print(allList.toList());
//[abc1, abc2, abc3, abc4]
请记住在未来添加您的课程以便更好地理解。
【讨论】:
感谢您的帮助以上是关于从 Flutter 中的 List 获取一个子子项的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:我如何从 List<String> 中的 firestore 获取数据?
从 Flutter 中的 Uint8List 数据更改图像大小
如何从 Flutter Web 中的 Uint8List 获取视频缩略图?
Flutter - 无法将所有 json 数据从 api 响应保存到 Iterable List 编辑:(无法从可迭代列表中获取数据)