【问题标题】:Get a children childs from List in Flutter从 Flutter 中的 List 获取一个子子项
【发布时间】: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);
});

【问题讨论】:

    标签: arrays list flutter


    【解决方案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]
      

      请记住在未来添加您的课程以便更好地理解。

      【讨论】:

      • 感谢您的帮助
      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多