Flutter の勉強中にmap()の扱いで詰まったのでメモ。
Dart の map()はインデックスが取れない
Javascript だと以下のようにmap()のコールバックの引数にインデックスが入ってくるのですが、Dart だとできないようです。
newArray = oldArray.map((item, index) {
return something;
})
Dart の場合はasMap()で Map にしてから回すと良いようです。ただ、asMap().map()だと返り値の型が変わってしまっているようでうまくtoList()できなかったので、asMap().entries.map().toList()が良さげっぽいです。
newList = oldList.asMap().entries.map((entry) {
var index = entry.key;
var item = entry.value;
return something;
}).toList();
Dart 初学者なのでミスってたらご指摘ください。