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

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

はじめに

例として、次のようなオブジェクトを作成したとします。

const myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^https://.*"
};

このオブジェクトから regex プロパティを削除し、以下のように myObject を更新することを目標としましょう。

const myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI"
};

delete 演算子を使ったプロパティの削除

オブジェクトからプロパティを削除するには、JavaScript の delete 演算子を使用します。

const myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^https://.*"
};
delete myObject['regex'];
console.log(myObject.hasOwnProperty("regex")); // false

実行結果

false

コンソールには false が出力され、hasOwnProperty() メソッドによる確認でも regex プロパティが正常に削除されたことが分かります。

C / C++ の delete キーワードとの違い

JavaScript の delete 演算子は、C言語や C++ における同名のキーワードとは役割がまったく異なる点に注意が必要です。

  • JavaScript の delete:オブジェクトからプロパティそのものを取り除くための演算子。
  • C / C++ の deletenew などで動的に確保したメモリを解放するためのキーワード。

つまり、JavaScript の delete 演算子はメモリを直接解放するものではありません。その唯一の目的は「オブジェクトからプロパティを削除する」ことであり、メモリ管理自体は JavaScript エンジンのガベージコレクション(GC)によって自動的に行われます。

補足:分割代入を使った別のアプローチ

delete 演算子は元のオブジェクトを直接変更します。元のオブジェクトを保持したい場合は、ES2015以降で利用できる分割代入(レスト構文)を使い、特定のプロパティを除外した新しいオブジェクトを生成する方法も便利です。

const myObject = {
  "ircEvent": "PRIVMSG",
  "method": "newURI",
  "regex": "^https://.*"
};

const { regex, ...newObject } = myObject;
console.log(newObject);
// { ircEvent: 'PRIVMSG', method: 'newURI' }

この方法なら、元の myObject は変更されず、イミュータブルなデータ操作を実現できます。状況に応じて delete と使い分けるとよいでしょう。

  1. JavaScript関数からオブジェクトを返す方法をわかりやすく解説

    JavaScriptの関数からオブジェクトを返すには、return文を使用します。オブジェクト内のプロパティやメソッドにアクセスする際は、thisキーワードを活用すると便利です。この記事では、実際のコード例を使いながら、JavaScript関数からオブジェクトを返す基本的な方法を解説します。基本的な考え方JavaScriptでは、オブジェクトの中にメソッド(関数)を定義できます。そのメソッド内でreturn文を使えば、処理結果や値を呼び出し元に返すことができます。また、thisキーワードを参照することで、同じオブジェクト内の他のプロパティにアクセス可能です。サンプルコード以下のコードでは、従業

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

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