[Dart]リスト(配列)のmapメソッドでインデックスを使うには?

Dart

どうも、ちょげ(@chogetarou)です。

配列であるリストのmapメソッドで、要素のインデックスを使う方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Listのmapメソッドでインデックスを使うには、collectionパッケージを使います。

まず、collectionパッケージをインポートします。

import 'package:collection/collection.dart';

そして、ListからmapIndexedメソッドを呼び出します。

mapIndexedメソッドの引数には、第1引数でインデックス、第2引数で値を受け取るコールバック関数を指定します。

また、mapIndexedメソッドのコールバック関数では、新しい値をreturnします。

var newList = list
    .mapIndexed((index, value) => newValue)

mapIndexedメソッドは、Iterable型の値を返します。

もし、ListからListを取得したい場合は、toListでmapIndexedメソッドの結果をリストに変換します。

使用例

import 'package:collection/collection.dart';

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  var newNumbers = numbers
    .mapIndexed((index, value) => index + value)
    .toList();
  
  print(newNumbers); //[1, 3, 5, 7, 9]
}

コメント

タイトルとURLをコピーしました