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

JavaScriptのfilter()メソッドで複数オブジェクトのJSONデータを効率的に絞り込む方法

JavaScriptでは、配列に含まれる複数のオブジェクト(JSONデータ)を条件に応じて絞り込む際、filter()メソッドと比較演算子==(または===)を組み合わせて使用するのが一般的です。

filter()は、指定したコールバック関数がtrueを返す要素だけを集めた新しい配列を生成するため、元のデータを壊すことなく安全にフィルタリングできます。

サンプルコード

以下は、学生情報を格納したJSON形式の配列から、studentNameが「David」であるオブジェクトだけを抽出する例です。

const jsonObject = [
    {
        studentId: 101,
        studentName: "David"
    },
    {
        studentId: 102,
        studentName: "Mike"
    },
    {
        studentId: 103,
        studentName: "David"
    },
    {
        studentId: 104,
        studentName: "Bob"
    }
]

var result = jsonObject.filter(obj => obj.studentName == "David");
console.log(result);

プログラムの実行方法

Node.js環境で上記のプログラムを実行するには、ターミナルまたはコマンドプロンプトで以下のコマンドを入力します。

node ファイル名.js

実行結果

ここではファイル名をdemo194.jsとして保存しています。実行すると、以下のように「David」という名前を持つ2つのオブジェクトが出力されます。

PS C:\Users\Amit\javascript-code> node demo194.js
[
    { studentId: 101, studentName: 'David' },
    { studentId: 103, studentName: 'David' }
]

filter()メソッドのポイント

  • 元の配列は変更されないfilter()は新しい配列を返すため、非破壊的な処理が可能です。
  • 厳密等価演算子の推奨==よりも型変換を行わない===を使用することで、意図しないバグを防げます。
  • 条件は自由にカスタマイズ可能:複数条件を組み合わせる場合は、&&||を使ってコールバック関数内に記述できます。例えば「studentIdが102以上かつstudentNameがMike」のような条件も簡単に実現できます。

このようにfilter()メソッドを活用すれば、大量のJSONデータから必要なレコードだけを簡潔かつ効率的に取り出すことができます。

  1. データバックアップの正しい方法とは?3-2-1ルールで大切なデータを守る

    現代のIT社会において、包括的なバックアップ戦略を持つことは不可欠です。データが失われる原因は数多く存在し、バックアップを適切に行う方法を理解することは、深刻な事態を回避するために極めて重要です。では、具体的にどのようにデータをバックアップすればよいのでしょうか?データ損失のリスクサイバー攻撃、内部犯行、自然災害、記録メディアの破損、人的ミスなど、データを失う要因は枚挙にいとまがありません。個人にとってデータ損失は煩わしく心を痛める出来事ですが、企業にとっては取り返しのつかない結果をもたらしかねません。Consoltechによる以下の衝撃的な統計をご覧ください。重大なデータ損失を経験した企業の

  2. Excelのフィルター機能を使いこなそう!基本から応用まで徹底解説

    前回、Excelの集計関数を使って大量のデータを簡単にまとめる方法をご紹介しましたが、あの記事ではワークシート上のすべてのデータが対象でした。では、データの一部だけを抽出し、その抽出したデータだけを集計したい場合はどうすればよいのでしょうか? Excelでは、列にフィルターを設定することで、条件に一致しない行を自動的に非表示にできます。さらに、特殊な関数を使えば、フィルターで表示中のデータだけを対象に集計することも可能です。 本記事では、Excelでフィルターを作成する手順と、組み込み関数を使ってフィルター後のデータを集計する方法を、順を追って詳しく解説していきます。 Excelでシンプルなフ