JavaScript でオブジェクトからプロパティを削除する

Moataz Farid 2023年10月12日
  1. JavaScript でオブジェクトからプロパティを削除するために delete 演算子を使用する
  2. ライブラリ underscore を使って JavaScript でオブジェクトからプロパティを削除する
  3. JavaScript でオブジェクトからプロパティを削除するために spread 構文を使用する ECMAScript 6
JavaScript でオブジェクトからプロパティを削除する

このチュートリアルでは、JavaScript でオブジェクトからプロパティを削除する方法を複数のメソッドを使って説明します。ECMAScript 6 の delete 演算子、reassignment メカニズム、underscore ライブラリ、そして spread 構文を使ってデモを行います。

JavaScript でオブジェクトからプロパティを削除するために delete 演算子を使用する

オブジェクトのプロパティを削除する方法の一つに delete 演算子があります。この演算子はオブジェクトからプロパティを削除します。例えば、myObject というオブジェクトがあり、idsubjectgrade というプロパティを持っているので、grade プロパティを削除する必要があります。

var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};

console.log('Original object:', myObject);
// delete the grade property
delete myObject.grade
console.log('Updated object: ', myObject)

出力:

Original object: {id: "12345", subject: "programming", grade: "A"}
Updated object:  {id: "12345", subject: "programming"}

ライブラリ underscore を使って JavaScript でオブジェクトからプロパティを削除する

JavaScript でオブジェクトからプロパティを削除する際に、元のオブジェクトを更新することなくプロパティを削除することができるライブラリの一つに、underscore ライブラリがあります。このライブラリは 2つの重要な関数 _.pick()_.omit() を提供しています。

関数 _.omit() はオブジェクトから与えられたプロパティを削除し、更新されたコピーを返すことができます。

var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};

console.log('Original object:', myObject);

var updatedObject = _.omit(myObject, 'grade')
console.log('Updated object with omit() : ', updatedObject)
console.log('Original object after update:', myObject);

出力:

Original object: {id: "12345", subject: "programming", grade: "A"}
Updated object with omit() :  {id: "12345", subject: "programming"}
Original object after update: {id: "12345", subject: "programming", grade: "A"}

関数 _.pick() はオブジェクトの指定されたプロパティのみを含み、他のプロパティは無視され、そのオブジェクトから更新されたコピーを返します。

var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};

console.log('Original object:', myObject);

var updatedObject = _.pick(myObject, 'id', 'subject')
console.log('Updated object with pick() : ', updatedObject)
console.log('Original object after update:', myObject);

出力:

Original object: {id: "12345", subject: "programming", grade: "A"}
Updated object with pick() :  {id: "12345", subject: "programming"}
Original object after update: {id: "12345", subject: "programming", grade: "A"}

ライブラリはここからインポートすることができます。

JavaScript でオブジェクトからプロパティを削除するために spread 構文を使用する ECMAScript 6

ECMAScript 6 の JavaScript の spread 構文は、元のオブジェクトを変更せずに JavaScript オブジェクトから与えられたプロパティを削除し、新しく更新されたオブジェクトを返す非常にエレガントな方法を提供します。

spread 構文を使用すると、元のオブジェクトを 2つの変数に分割したように見えます。そのうちの一つが削除されたプロパティになります。もう一方の変数には、元のオブジェクトのコピーを保持し、削除されたオブジェクトは保持しません。

var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};

console.log('Original object:', myObject);

var {grade, ...myUpdatedObject} = myObject;

console.log('The removed \'grade\' property : ', grade)
console.log('Updated object : ', myUpdatedObject)
console.log('Original object after update:', myObject);

出力:

Original object: {id: "12345", subject: "programming", grade: "A"}
The removed 'grade' property :  A
Updated object :  {id: "12345", subject: "programming"}
Original object after update: {id: "12345", subject: "programming", grade: "A"}

関連記事 - JavaScript Object