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

JavaScriptのfilter()メソッドを使って配列からオブジェクトを削除する方法

JavaScriptでは、filter()メソッドを活用することで、配列から特定の条件に合わないオブジェクトを簡単に取り除くことができます。本記事では、detailsプロパティを持たないオブジェクトを配列から除外する方法を、具体的なコード例とともに解説します。

対象となるデータの例

まず、次のようなオブジェクトが格納された配列を想定します。

ObjectValue = [
  { "id": "101", "details": { Name: "John", subjectName: "JavaScript" } },
  { "id": "102", "details": { Name: "David", subjectName: "MongoDB" } },
  { "id": "103" }
]

この配列には3つのオブジェクトが含まれていますが、idが「103」のオブジェクトだけはdetailsプロパティを持っていません。このようなオブジェクトを削除したいケースは、APIから取得したデータの整形などでよく見られます。

filter()を使ったオブジェクトの削除方法

filter()メソッドは、コールバック関数がtrueを返した要素だけを集めた新しい配列を生成します。つまり、obj.detailsが存在する(truthyである)オブジェクトのみを残すことで、detailsを持たないオブジェクトを結果から除外できます。

コード例

ObjectValue = [
  { "id": "101", "details": { Name: "John", subjectName: "JavaScript" } },
  { "id": "102", "details": { Name: "David", subjectName: "MongoDB" } },
  { "id": "103" }
]

output = ObjectValue.filter(obj => obj.details)
console.log(output)

プログラムの実行方法

上記のプログラムを実行するには、Node.jsを使って次のコマンドを入力します。

node fileName.js

ここでは、ファイル名をdemo46.jsとして保存したものとします。

実行結果

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

PS C:\Users\Amit\JavaScript-code> node demo46.js
[
  { id: '101', details: { Name: 'John', subjectName: 'JavaScript' } },
  { id: '102', details: { Name: 'David', subjectName: 'MongoDB' } }
]

出力結果を見ると、detailsプロパティを持たなかったid「103」のオブジェクトが削除され、残りの2つのオブジェクトだけが新しい配列として返されていることがわかります。

ポイントのまとめ

  • filter()は元の配列を変更せず、条件を満たす要素だけを含む新しい配列を返します。
  • コールバック関数内でobj.detailsのようにプロパティを直接参照すると、そのプロパティが存在する場合のみtrue(truthy)となり、存在しない場合はundefined(falsy)となります。
  • この特性を利用することで、特定のプロパティを持たないオブジェクトを簡潔に除外できます。

なお、より厳密に判定したい場合は、Object.prototype.hasOwnProperty.call(obj, 'details')を使う方法もあります。これにより、プロパティの値がnull0などのfalsyな値であっても、プロパティ自体が存在すれば配列に残すことができます。

  1. JavaScriptオブジェクトからプロパティを削除する方法|delete演算子の使い方

    JavaScriptのオブジェクトからプロパティを削除するには、delete演算子を使用します。delete演算子を使うと、指定したプロパティがオブジェクトから完全に取り除かれます。なお、単にプロパティに undefined を代入した場合と異なり、delete演算子を使えばプロパティそのものをオブジェクトから削除できる点に注意してください。サンプルコード<!DOCTYPE html> <html> <body> <h1>JavaScript Object Properties Example</h1> <h2 class=&q

  2. JavaScriptでURLオブジェクトを作成する方法をわかりやすく解説

    JavaScriptでは、標準組み込みのURLコンストラクタを使うことで、URL文字列からURLオブジェクトを簡単に生成できます。URLオブジェクトを作成すると、プロトコル(protocol)やホスト名(host)、パス(pathname)など、URLを構成する各要素に個別にアクセスできるようになるため、URLの解析や操作がとても便利になります。 URLオブジェクトの作成例 以下は、JavaScriptでURLオブジェクトを作成し、ボタンをクリックするとその各プロパティを画面に表示するサンプルコードです。 <!DOCTYPE html> <html lang="