1. ホーム
  2. javascript

[解決済み] JavaScriptオブジェクトのプロパティを削除/解除するにはどうすればよいですか?重複

2022-08-10 13:38:06

質問

重複の可能性があります。

JavaScript の変数の設定を解除するにはどうすればよいですか?

JavaScript のオブジェクトからプロパティを削除するにはどうすればよいですか?

私は、JavaScriptオブジェクトのプロパティを削除/設定解除する方法を探しています。 for (var i in myObject) . これはどのように行うことができますか?

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

単純に delete を使いますが、これを使うことでどのような効果があるのかを十分に読む必要があることに注意してください。

 delete object.index; //true
 object.index; //undefined

しかし、もし私がこのように使うのであれば

var x = 1; //1
delete x; //false
x; //1

しかし、グローバル名前空間の変数を削除したい場合は、次のようにそのグローバルオブジェクトを使用することができます。 window を使うか、あるいは this を一番外側のスコープで使うか、つまり

var a = 'b';
delete a; //false
delete window.a; //true
delete this.a; //true

削除を理解する

もう一つの事実は、配列に対してdeleteを使用してもインデックスが削除されるわけではなく、値がundefinedに設定されるだけであるということです。配列の場合は splice これは配列オブジェクトのプロトタイプです。

配列の例です。

var myCars = new Array();
myCars[0] = "Saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";

もし私がやるなら

delete myCars[1];

とすると、出来上がった配列は

["Saab", undefined, "BMW"]

しかし,splice を使って

myCars.splice(1,1);

になると、結果的に

["Saab", "BMW"]