中学生でもわかるJavaScriptのfindIndex()メソッド

programming
DMM WEBCAMP

こんにちは、フローです。

今回は、JavaScriptのfindIndex()メソッドについて書いていきたいと思います。

findIndexとは

JavaScriptのfindIndex()メソッドは、

配列内の特定の条件を満たす最初の要素のインデックス(位置)を返します。

条件を満たす要素が見つかればそのインデックスを返し、

見つからない場合は-1を返します。

findIndexの使いどころ

findIndex()メソッドは、配列内で特定の条件を満たす要素の位置を知りたいときに使用します。

たとえば、特定のユーザーIDを持つユーザーの位置を配列内で見つけたい、

あるいは特定のスコアを持つ学生の位置をクラスリストの中から探したい、

といった場合などに便利です。

findIndexの使用パターン

パターン1:特定の条件を満たす要素の位置を見つける

最初の例として、配列内の特定の条件を満たす要素の位置を探すパターンを考えてみましょう。

let numbers = [5, 12, 8, 130, 44];
let foundIndex = numbers.findIndex(number => number > 10);
console.log(foundIndex); // 1

この例では、

10より大きな最初の数値の位置をfindIndex()メソッドで探しています。

パターン2:オブジェクトの配列から要素の位置を見つける

次に、オブジェクトの配列から特定の条件を満たす要素の位置を探すパターンを見てみましょう。

let students = [
  { name: 'Jack', score: 50 },
  { name: 'Jill', score: 80 },
  { name: 'Averell', score: 65 },
  { name: 'Joe', score: 90 }
];
let highScoreStudentIndex = students.findIndex(student => student.score > 70);
console.log(highScoreStudentIndex); // 1

この例では、スコアが70点以上の最初の生徒の位置をfindIndex()メソッドで探しています。

パターン3:配列から特定の要素の位置を見つける

最後に、配列から特定の要素の位置を探すパターンを見てみましょう。

let fruits = ['apple', 'banana', 'mango', 'guava'];
let myFavoriteFruitIndex = fruits.findIndex(fruit => fruit === 'mango');
console.log(myFavoriteFruitIndex); // 2

この例では、好きなフルーツの位置をfindIndex()メソッドで探しています。

findIndexの注意点

findIndex()メソッドは非常に便利ですが、

使用する際には注意点があります。

一つは、findIndex()が条件を満たす要素がない場合、

-1を返すということです。

この戻り値を適切にハンドリングしないと、

意図しない挙動を引き起こす可能性があります。

let numbers = [1, 2, 3, 4, 5];
let index = numbers.findIndex(num => num === 10);
console.log(index); // -1
console.log(numbers[index]); // undefined

このコードでは、10と等しい要素を配列から探そうとしていますが、

配列にはそのような要素が存在しないため、

findIndex()メソッドは-1を返します。

しかし、その後でnumbers[index]として-1番目の要素にアクセスしようとしているため、

結果はundefinedとなります。

これは意図した結果ではないため、

findIndex()の戻り値が-1である場合には適切に処理を行うことが必要です。

まとめ

JavaScriptのfindIndex()メソッドは、配列の中から特定の条件を満たす最初の要素のインデックスを見つけるための強力なツールです。

ただし、その使い方を間違えると、予期せぬ結果をもたらす可能性があります。

配列に条件を満たす要素が存在しない場合、

-1が返るという特性を理解し、この戻り値を適切にハンドリングすることが重要です。

以上、

「中学生でもわかるJavaScriptのfindIndex()メソッド」の解説でした。

プログラミングの学習は複雑で難しい場面もありますが、

基本的な機能を一つずつ理解していくことで、

大きな壁も乗り越えていけます。

次回もこのようなわかりやすい解説を続けていきますので、お楽しみに!

レッツチャレンジ!