• dart的map方法如何获取index


    一、前言

    我们常常用dart中的map方法遍历List,但是直接用map,只能取到value,得不到index,这是因为map方法就只给了一个value,map的实现如下图:

    下面就看看获取index的方法吧~(#^.^#)~

    提醒:想直接知道怎么写,看最后总结就行了。

    二、asMap()方法

    asMap()方法可以把List变成Map类型,并且把索引index作为key,list里面相应的值作为value,官方描述如下:

    试一试:

    final List<String> _testList = ['a', 'b', 'c'];
    print(_testList.asMap());            // {0: a, 1: b, 2: c}
    print(_testList.asMap()[0]);         // a
    print(_testList.asMap().keys);       // (0, 1, 2)
    
    print(_testList.asMap().values);     // (a, b, c)
    
    print(_testList.asMap().entries);    // (MapEntry(0: a), MapEntry(1: b), MapEntry(2: c))

    三、总结

    • 通过 .asMap().entries, 得到一个可迭代对象 entries(Iterable<MapEntry<int, String>>);
    • 遍历entries,得到MapEntry类型的对象;
    • 然后可以用 .value,.key 分别获取value和index。

    一个例子:

    final List<String> _testList = ['a', 'b', 'c'];
    _testList.asMap().entries.map((entry) {
          String item = entry.value;
          int index = entry.key;
          return Padding(
            padding: EdgeInsets.only(top: index == 0 ? 0 : 10),
            child: Text(item),
          );
    });

    END--------------------------------- 

     

  • 相关阅读:
    English in 999
    面向对象程序设计
    HOOK相关
    很幽默的讲解六种Socket IO模型(转)(Delphi版本)[转]
    P2P之UDP穿透NAT原理并有UDP打洞的源码[转]
    分批导出数据库记录
    DELPHI Winsock完成端口[转]
    由数据库排序差异引起的错误一例总结
    适配器模式
    JQuery+Asp.net+Webservice组成的Autocomplete示例
  • 原文地址:https://www.cnblogs.com/MaiJiangDou/p/16049902.html
Copyright © 2020-2023  润新知