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

JavaScriptでオブジェクトの配列から特定の値だけを抽出する方法(filter活用)

JavaScriptでオブジェクトの配列を扱うとき、「特定の条件に一致する要素だけを取り出したい」という場面は非常によくあります。そんなときに便利なのが filter() メソッドです。

前提となる配列の用意

まず、次のような学生情報を格納したオブジェクトの配列を例に考えてみましょう。

var details = [{
    studentName: "John",
    studentMarks: 92
},
{
    studentName: "David",
    studentMarks: 89
},
{
    studentName: "Mike",
    studentMarks: 98
},
];

この配列には3人の学生データが含まれており、それぞれ「名前(studentName)」と「点数(studentMarks)」というプロパティを持っています。

filter() を使って特定の値だけを取得する

filter() メソッドは、コールバック関数が true を返した要素だけを集め、新しい配列として返します。元の配列は変更されないため、安全にデータを絞り込めるのも魅力です。

ここでは、点数が 92 または 98 の学生データだけを抽出してみます。

サンプルコード

var details = [{
    studentName: "John",
    studentMarks: 92
},
{
    studentName: "David",
    studentMarks: 89
},
{
    studentName: "Mike",
    studentMarks: 98
},
];
var specificValuesFromArray = details.filter(obj => obj.studentMarks === 92 || obj.studentMarks === 98);
console.log(specificValuesFromArray)

コールバック関数ではアロー関数式を使っており、obj.studentMarks === 92 || obj.studentMarks === 98 という条件式で、目的の点数に一致するオブジェクトだけを判定しています。

プログラムの実行方法

Node.js環境で上記のプログラムを実行するには、次のコマンドを使用します。

node fileName.js

ここでは、ファイル名を demo177.js として保存しています。

実行結果

実行すると、コンソールには次のように出力されます。

PS C:\Users\Amit\javascript-code> node demo177.js
[
    { studentName: 'John', studentMarks: 92 },
    { studentName: 'Mike', studentMarks: 98 }
]

このように、条件に一致した「John」と「Mike」の2件のオブジェクトだけが新しい配列として取得できました。filter() を使えば、このように簡潔で読みやすいコードで配列から必要なデータだけを取り出すことができます。

  1. JavaScript配列から一意の値(重複なし)を取得する方法

    JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <

  2. JavaScriptでnull・空のオブジェクトを含む配列に値を割り当てる方法

    JavaScriptでは、forEach()メソッドとObject.keys()メソッドを組み合わせることで、nullや空のオブジェクトを含む配列に対して効率的に値を割り当てることができます。本記事では、実際のコード例を交えながら、その具体的な実装方法をわかりやすく解説します。 サンプルコード 以下は、JavaScriptを使用してnull/空のオブジェクトを持つ配列に値を割り当てるコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu