dart를 하면서 list.map() 을 쓸 일이 매우 많다.
list → List<Widget> 으로 변환할 때 주로 사용하는데, 이 때 리스트의 인덱스가 필요할 때가 있다.
void main() {
List a = ['a', 'b', 'c'];
// a.map((e) => ?);
// map 안에서 e 의 인덱스를 어떻게 구할까 ?
// solution
final asMap = a.asMap();
print(asMap);
asMap.keys.forEach((element) {
print(element);
});
}
list.asMap() 을 이용하면 {0: a, 1: b, 2: c} 이런 인덱스를 키로 하는 map 형태로 쉽게 변환할 수 있다.
이 맵의 entries 를 이용하면 쉽게 key, value에 접근가능하다.
[1, 2, 3].asMap().entries.map((e) {
/// 위젯으로 바꿈
e.key; // 키
e.value; // 값
return SomeWidget();
});