Dartでインデックスと値を持つリストを列挙またはマップする質問する

Dartでインデックスと値を持つリストを列挙またはマップする質問する

dart には一般的なものに相当するものはありません:

enumerate(List) -> Iterator((index, value) => f)
or 
List.enumerate()  -> Iterator((index, value) => f)
or 
List.map() -> Iterator((index, value) => f)

これが最も簡単な方法のように思えますが、それでもこの機能が存在しないのは奇妙に思えます。

Iterable<int>.generate(list.length).forEach( (index) => {
  newList.add(list[index], index)
});

ベストアンサー1

キーがインデックスで値が要素であるを にasMap変換するメソッドがあります。 asMap のドキュメントを参照してください。ListMap

例:

final sample = ['a', 'b', 'c'];
sample.asMap().forEach((index, value) => f(index, value));

Dart 3 を使用している場合は、代わりに プロパティを使用できます。indexedのドキュメントindexedを参照してください。

例:

final sample = ['a', 'b', 'c'];
for (final (index, item) in sample.indexed) {
  f(index, item);
}

おすすめ記事