JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでfind()メソッドに似たカスタム関数を作成する方法

ここでは、studentId(学生ID)と studentName(学生名)のレコードを格納した配列を例に、特定の学生名が存在するかどうかをチェックする方法を解説します。

const studentDetails = [
    {
        studentId: 101,
        studentName: "John"
    },
    {
        studentId: 102,
        studentName: "David"
    },
    {
        studentId: 103,
        studentName: "Carol"
    }
]

JavaScriptには、配列の中から条件に合う最初の要素を取得する find() メソッドが標準で用意されていますが、同様の処理は forループとフラグ変数を組み合わせることで、自分でも実装できます。ここでは、指定した名前で学生を検索するカスタム関数を作成してみましょう。

カスタム関数の実装例

以下が、名前を指定して学生を検索するカスタム関数のコードです。

function findByName(name) {
    var flag = true;
    for (var i = 0; i < studentDetails.length; i++) {
        if (studentDetails[i].studentName == name) {
            flag = true;
            break;
        } else {
            flag = false;
        }
    }
    if (flag == true) {
        console.log("The name found=" + name);
    } else {
        console.log("The name not found=" + name);
    }
}
findByName("David");

この関数の処理の流れは次のとおりです。

  • 配列 studentDetails を先頭から順にループで走査します。
  • studentName が引数で渡された名前と一致した場合はフラグを true にし、break でループを終了します。
  • 最後にフラグの値に応じて、名前が見つかったかどうかをコンソールに出力します。

プログラムの実行方法

上記のプログラムを実行するには、Node.jsで次のコマンドを使用します。ここでは、ファイル名を demo106.js として保存しています。

node demo106.js

実行結果

このプログラムを実行すると、次のような出力が得られます。

PS C:\Users\Amit\JavaScript-code> node demo106.js
The name found=David

「David」は配列内に存在するため、「The name found=David」と表示されます。存在しない名前を指定した場合は「The name not found=(指定した名前)」と出力されます。

補足:find()メソッドを使った簡潔な書き方

なお、モダンなJavaScriptでは find() メソッドを使うことで、同じ処理をより簡潔に記述できます。

const result = studentDetails.find(student => student.studentName === "David");
console.log(result); // { studentId: 102, studentName: "David" }

条件に合う要素が見つからない場合、find()undefined を返します。用途に応じて、カスタム関数と標準メソッドを使い分けるとよいでしょう。

  1. ChromeでJavaScriptの関数定義を見つける方法|開発者ツールの検索機能を使いこなそう

    Google ChromeでWebサイトのソースコードを解析していると、「このJavaScript関数はどこで定義されているのだろう?」と悩むことがあります。特に大規模なプロジェクトや、複数の外部スクリプトが読み込まれているページでは、目的の関数定義を手作業で探すのは非常に手間がかかります。 Chrome DevToolsの検索機能を使えば一瞬で見つかる 実は、Chromeに標準搭載されているデベロッパーツール(Developer Tools)には、読み込まれたすべてのファイルを横断的に検索できる強力な機能があります。以下の手順に従えば、JavaScriptの関数定義も簡単に見つけられます。

  2. CSSとJavaScriptでカスタムセレクトボックスを作成する方法【実装例つき】

    HTML標準の<select>要素はブラウザごとに見た目が異なり、デザインの自由度が低いという課題があります。そこで本記事では、CSSとJavaScriptを組み合わせて、見た目を自由にカスタマイズできるオリジナルのセレクトボックス(ドロップダウンメニュー)を作成する方法を解説します。実装のポイントカスタムセレクトボックスを実装する際の基本的な考え方は以下の通りです。元となる<select>要素はCSSで非表示にし、データ保持用として利用します選択状態を表示する要素(.select-selected)と、選択肢一覧を表示する要素(.select-items)をJavaS