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---------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具