本記事では、JavaScriptで条件に一致する最初の配列要素を取得するfindメソッドの使い方について解説しています。
JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
メリット
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
findメソッドの使い方
条件に一致する最初の配列要素を取得したい時は、findメソッドを使用します。基本的な使い方は以下のとおりです。
let result = Array.find((value, index, array) => /* 判定処理 */);
構文解説
- result:最初に条件に一致した配列要素が代入される
- Array:対象の配列
- value(第一引数):配列要素
- index(第二引数):インデックス番号(添え字)
- array(第三引数):対象の配列
コールバック関数に渡される引数に何が入っているか確認してみましょう。
let numArr = [10, 50];
let result = numArr.find((value, index, array) => {
console.log(`value:${value}\nindex:${index}\narray:${array}`);
});
/* コンソールログ *
* value:10
* index:0
* array:10,50,80,60,100
*
* value:50
* index:1
* array:10,50,80,60,100
*/
コンソールログを確認すると、第一引数のvalueには配列要素が、第二引数のindexにはインデックス番号(添え字)が、第三引数のarrayには対象の配列が代入されていることが分かります。
実際に、findメソッド使用して条件に一致した最初の要素を取得してみましょう。
let numArr = [10, 50, 80, 60, 100];
let result = numArr.find((value, index, array) => value > 70);
console.log(result); // => 80
条件は第一引数のvalue(配列要素)が70以上の時です。これに一致する配列要素は3つ目の80と5つ目の100です。戻り値が代入されているresultを確認すると、80のみ代入されていることから最初に条件一致した配列要素しか取得していないことが分かります。
インデックス番号(添え字)を取得したい場合
もし、条件に一致する最初の配列要素ではなくインデックス番号を取得したい場合は、findメソッドではなくfindIndexメソッドを使用します。基本的な使い方はfindメソッドと全く同じです。
let result = Array.findIndex((value, index, array) => /* 判定処理 */);
異なる点は、最初に条件一致したインデックス番号が戻り値になります。先ほど紹介したコードで動作確認してみましょう。
let numArr = [10, 50, 80, 60, 100];
let result = numArr.findIndex((value, index, array) => value > 70);
console.log(result); // => 2
コンソールログを確認すると、最初に条件一致する80が代入されているインデックス番号(2)が返されていることが分かります。