[Dart]リスト(配列)の要素のインデックスを検索するには?

Dart

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

Dartで配列であるリストの要素のインデックスを検索する方法を紹介します。

スポンサーリンク

方法

コンピューター, ノート, オフィス, コード, プログラミング, プログラム

リストの要素のインデックスを検索するには、indexOfもしくはindexWhereメソッドを使います。

indexOf

indexOfメソッドは、引数に指定した要素のインデックスを返すメソッドです。

具体的な使い方としては、引数に要素の値を指定したindexOfを呼び出します。

list.indexOf(element); //elementのインデックスを返す

indexOfメソッドは、配列の先頭から最初の要素のインデックスを返します。

検索対象の要素が複数あったとしても、先頭の要素のインデックスしか取得できません。

使用例

void main() {
  var numbers = [1 , 2, 3, 4, 5];
  
  print(numbers.indexOf(3));
}

indexWhere

indexWhereメソッドは、引数に指定した条件に合致する要素のインデックスを返すメソッドです。

具体的な使い方としては、引数に条件式を返すコールバック関数を指定します。

indexWhereメソッドは、コールバック関数で返された条件式で最初に「true」を返した要素のインデックスを取得できます。

//コールバック関数の条件式で最初に「true」を返した要素のインデックスを取得
list.indexWhere((element) => 条件式)

コールバック関数の引数では、配列から取り出した要素を受け取ることが出来ます。

使用例

void main() {
  var numbers = [1 , 2, 3, 4, 5];
  
  //3より大きい最初の要素のインデックスを取得
  print(numbers.indexWhere((element) => element > 3)); //3
}

まとめ

配列であるリストの要素のインデックスを検索するには、indexOfメソッドもしくはindexWhereメソッドを使います。

コメント

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