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

JavaScriptオブジェクトからプロパティを削除する方法を徹底解説

JavaScriptでオブジェクトのプロパティを削除する基本

JavaScriptでは、delete 演算子を使うことで、オブジェクトから特定のプロパティを削除できます。まず、次のようなオブジェクトを例に考えてみましょう。

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

このオブジェクトから regex プロパティを取り除き、次のような状態にしたいとします。

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

delete演算子の使い方

プロパティの削除には delete 演算子を使用します。具体的なコード例は以下のとおりです。

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

hasOwnProperty() メソッドの結果が false になっていることから、regex プロパティが正常に削除されたことが確認できます。

実行結果

コンソールには次のように出力されます。

false

C/C++のdeleteとの違いに注意

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

  • C/C++の delete: 動的に確保したメモリを解放するために使う
  • JavaScriptの delete: オブジェクトからプロパティを取り除くためだけに使う

つまり、JavaScriptの delete はメモリを直接解放するものではなく、その唯一の目的はオブジェクトからプロパティを除去することです。

補足:スプレッド構文や分割代入を使った代替手段

元のオブジェクトを変更せず(イミュータブルな状態を保ちながら)プロパティを除外したい場合は、ES2015以降の構文が便利です。たとえば、残余引数(rest)を使った分割代入なら次のように書けます。

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

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

この方法なら、元の myObject を壊すことなく、regex を除いた新しいオブジェクトを作成できます。Reactなどのモダンな開発環境では、状態の不変性(immutability)を保つためにこちらの手法が好まれることも多いです。

  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