概要: このチュートリアルでは、配列 のfindIndex()
メソッドを使用して、指定されたテストを満たす最初の要素を見つける方法を学習します。
JavaScript 配列 findIndex() メソッドの紹介
ES6では、Array.prototype
にfindIndex()
という新しいメソッドが追加されました。これにより、指定されたテスト関数を満たす配列内の最初の要素を見つけることができます。
findIndex()
メソッドは、テスト関数を満たす要素のインデックスを返し、テストに合格した要素がない場合は-1を返します。
以下は、findIndex()
メソッドの構文を示しています。
findIndex(testFn(element[, index[, array]])[, thisArg])
Code language: CSS (css)
findIndex()
は2つの引数を取ります。
1) testFn
testFn
は、関数がtrue
を返すまで(要素が見つかったことを示す)、配列の各要素で実行する関数です。
testFn
は3つの引数を取ります。
element
は配列内の現在の要素です。index
は処理中の現在の要素のインデックスです。array
はfindIndex()
が呼び出された配列です。
2) thisArg
thisArg
は、callback
を実行するときにthis
として使用されるオプションのオブジェクトです。thisArg
引数を省略すると、findIndex()
関数はundefined
を使用します。
findIndex()
は、testFn
が真の値(true
に強制変換される値)を返す要素が見つかるまで、配列内のすべての要素でtestFn
を実行します。
findIndex()
はそのような要素を見つけると、すぐに要素のインデックスを返します。
JavaScript 配列 findIndex() の例
JavaScript 配列findIndex()
メソッドの使用例をいくつか見てみましょう。
1) シンプルな配列の例で Array findIndex() メソッドを使用する
次の例は、ranks
配列で数字7の最初の出現位置のインデックスを返します。
let ranks = [1, 5, 7, 8, 10, 7];
let index = ranks.findIndex(rank => rank === 7);
console.log(index);
Code language: JavaScript (javascript)
出力
2
2) より複雑な条件で Array findIndex() メソッドを使用する
この例では、findIndex()
メソッドを使用して、ranks
配列のインデックス2以降の数字7の最初の出現位置のインデックスを取得します。
let ranks = [1, 5, 7, 8, 10, 7];
let index = ranks.findIndex(
(rank, index) => rank === 7 && index > 2
);
console.log(index);
Code language: JavaScript (javascript)
出力
5
3) オブジェクトの配列で Array findIndex() メソッドを使用する
次の例では、Array findIndex()
メソッドを使用して、価格が1000を超える最初の製品のインデックスを見つけます。
const products = [
{ name: 'Phone', price: 999 },
{ name: 'Computer', price: 1999 },
{ name: 'Tablet', price: 995 },
];
const index = products.findIndex(product => product.price > 1000);
console.log(index); // 1
Code language: JavaScript (javascript)
まとめ
- 指定されたテストを満たす最初の要素を見つけるには、JavaScript 配列
findIndex()
メソッドを使用します。