1. ホーム
  2. javascript

[解決済み] JavaScript の連想配列からオブジェクトを削除するにはどうすればよいですか?

2022-03-15 09:28:23

質問

次のようなコードがあるとします。

var myArray = new Object();
myArray["firstname"] = "Bob";
myArray["lastname"] = "Smith";
myArray["age"] = 25;

さて、もし私が "lastname" を削除したいとしたら......何か同等のものがあるのでしょうか? myArray["lastname"].remove() ?

(要素の数は重要で、すっきりさせたいので、要素は消してほしい)

どのように解決するのですか?

JavaScriptのオブジェクトは、キー(プロパティ)と値を対応させた連想配列と考えることができます。

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

const o = { lastName: 'foo' }
o.hasOwnProperty('lastName') // true
delete o['lastName']
o.hasOwnProperty('lastName') // false

ただし delete のインデックスプロパティに適用されます。 Array を作成することになります。 まばらな配列 (つまり、インデックスが欠落している配列)。

のインスタンスを操作する場合 Array もし、まばらな配列にしたくないのなら(普通はしないでしょうけど)。 Array#splice または Array#pop .

ただし delete 演算子は直接メモリを解放するものではありません。その目的は、オブジェクトからプロパティを削除することです。もちろん、削除されるプロパティがオブジェクトに唯一残っている参照を保持している場合、そのオブジェクトの o では o は、その後、通常の方法でガベージコレクションされます。

を使用すると delete 演算子は、JavaScriptエンジンの 最適化 コード .