【初心者向け】JavaScriptのfind()メソッドで特定のレコードを検索する方法を解説
JavaScriptで配列の中から特定の条件に一致するレコード(オブジェクト)を1件だけ取得したい場合、find()メソッドを使うのが最もシンプルで効率的な方法です。
find()メソッドは、引数として渡したコールバック関数の条件を満たす最初の要素を返します。該当する要素が見つからない場合はundefinedが返されるため、検索結果の有無を判定する処理にも活用できます。
サンプルコード
以下は、学生情報の配列からstudentIdが102のレコードを検索する例です。
var obj = [
{
studentId: 101,
studentName: "John"
},
{
studentId: 102,
studentName: "Bob"
},
{
studentId: 103,
studentName: "David"
}
];
const result = obj.find(
(o) => {
return o.studentId === 102;
}
);
console.log(result);
このプログラムでは、アロー関数で各要素(o)を受け取り、o.studentId === 102という条件式で一致判定を行っています。一致した最初の要素だけが結果として返されます。
実行方法
Node.js環境で上記のプログラムを実行するには、以下のコマンドを使用します。
node fileName.js
ここでは、ファイル名を「demo315.js」として保存しているものとします。
実行結果
上記のコマンドを実行すると、コンソールには次のように出力されます。
PS C:\Users\Amit\javascript-code> node demo315.js
{ studentId: 102, studentName: 'Bob' }
このように、studentIdが102である「Bob」のレコードが正しく取得できていることが確認できます。
find()メソッドのポイント
- 条件に一致する最初の1件のみを返す(複数件ヒットしても最初の要素だけ)
- 見つからない場合は
undefinedを返す - 元の配列は変更されない(非破壊的メソッド)
- filter()との違い:filter()は一致するすべての要素を配列で返し、find()は最初の1件のみを返す
大量のデータから特定の1件を高速に取り出したい場面で、find()メソッドは非常に便利です。ぜひ活用してみてください。
-
JavaScriptのgenerator.throw()メソッドの使い方を解説
```html generator.throw()メソッドとはgenerator.throw()メソッドは、一時停止中のyield式に対してエラーを送出するためのメソッドです。throw()が呼び出されると、ジェネレーターはあたかもyieldの位置で例外が発生したかのように実行を再開し、doneとvalueという2つのプロパティを持つオブジェクトを返します。このメソッドを使うと、ジェネレーターの外部から内部へ例外を注入できます。ジェネレーター内にtry...catchブロックが存在すれば、throw()で渡されたエラーはそのcatchブロックで捕捉されます。逆にcatchブロックがない場合は、
-
JavaScriptでオブジェクトにreduceメソッドを適用する方法
JavaScriptのreduce()メソッドは本来配列向けのメソッドのため、オブジェクトにそのまま適用することはできません。そこで、Object.values()メソッドを使ってオブジェクトの値を配列として取り出し、その配列に対してreduce()を適用します。 以下は、JavaScriptでオブジェクトの値にreduceメソッドを適用するコード例です。 コード例 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content