JavaScript

【JavaScript】条件に一致する最初の配列要素を取得するfindメソッドの使い方

本記事では、JavaScriptで条件に一致する最初の配列要素を取得するfindメソッドの使い方について解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

findメソッドの使い方

条件に一致する最初の配列要素を取得したい時は、findメソッドを使用します。基本的な使い方は以下のとおりです。

let result = Array.find((value, index, array) => /* 判定処理 */);
構文解説
  • result:最初に条件に一致した配列要素が代入される
  • Array:対象の配列
  • value(第一引数):配列要素
  • index(第二引数):インデックス番号(添え字)
  • array(第三引数):対象の配列

配列要素が条件に一つも一致しない場合は、undefinedが戻り値になります。

コールバック関数に渡される引数に何が入っているか確認してみましょう。

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)が返されていることが分かります。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村