Array find() and findIndex()
find() は Array インスタンスのメソッドで、提供されたテスト関数を満たす配列内の最初の要素を返します。 テスト関数を満たす値がない場合は、 undefined を返します。
配列内で見つかった要素のインデックスが必要な場合は、findIndex() を使用してください。
値のインデックスを検索する必要がある場合は、indexOf() を使用してください。(findIndex() と似ていますが、それぞれの要素の等価性はテスト関数ではなく値でチェックします。)
配列内に値が存在するかどうかを調べる必要がある場合は、 includes() を使用してください。
指定したテスト関数を満たす要素があるかどうかを調べる必要がある場合は、 some() を使用してください。
指定された検査関数を満たすすべての要素を探す必要がある場合は、 filter() を使用してください。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 45 | 12 | 25 | 8 | 45 | 8 | |
| ビルトインオブジェクト | ||||||
| findIndex() は Array インスタンスのメソッドで、配列内の指定されたテスト関数に合格する最初の要素のインデックスを返します。 テスト関数に合格する要素がなかった場合は -1 を返します。 | 45 | 12 | 25 | 8 | 45 | 8 |
| find() は TypedArray インスタンスのメソッドで、型付き配列のある要素の値が与えられたテスト関数を満たした場合、その値を返します。そうでなければ undefined を返します。このメソッドのアルゴリズムは Array.prototype.find() と同じです。 | 45 | 12 | 37 | 10 | 45 | 10 |
| findIndex() は TypedArray インスタンスのメソッドで、指定されたテスト関数を満たす型付き配列の最初の要素のインデックスを返します。テスト関数を満たす要素がない場合、 -1 を返します。このメソッドのアルゴリズムは Array.prototype.findIndex() と同じです。 | 45 | 12 | 37 | 10 | 45 | 10 |
基本構文
const users = [
{ name: 'Taro', age: 25 },
{ name: 'Hanako', age: 30 },
{ name: 'Jiro', age: 25 },
];
users.find(u => u.age === 25); // { name: 'Taro', age: 25 }
users.findLast(u => u.age === 25); // { name: 'Jiro', age: 25 }
users.findIndex(u => u.age === 30); // 1 ライブデモ
実務での使いどころ
-
Array find() and findIndex() の活用
find() は Array インスタンスのメソッドで、提供されたテスト関数を満たす配列内の最初の要素を返します。
注意点
- 特になし。すべての主要ブラウザで安定して動作する。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。