🔁

Dartのリストをインデックスを使いつつmap()する

Flutter の勉強中にmap()の扱いで詰まったのでメモ。

# Dart の map()はインデックスが取れない

Javascript だと以下のようにmap()のコールバックの引数にインデックスが入ってくるのですが、Dart だとできないようです。

newArray = oldArray.map((item, index) {
  return something;
})
1
2
3

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();
1
2
3
4
5

Dart 初学者なのでミスってたらご指摘ください。

参考:Access the Index on Dart List.map() (opens new window)