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--------------------------------- 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM