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

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

重複の可能性があるもの:
JavaScript 変数を設定解除するにはどうすればよいですか?
JavaScript オブジェクトからプロパティを削除するにはどうすればよいですか?

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

ベストアンサー1

単に を使用します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

削除の理解

もう 1 つの事実は、配列で delete を使用するとインデックスは削除されず、値が undefined に設定されるだけであるということです。つまり、for ループなどの特定の制御構造では、そのエンティティを反復処理することになります。配列に関しては、splice配列オブジェクトのプロトタイプである which を使用する必要があります。

配列の例:

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

もし私がそうするなら:

delete myCars[1];

結果の配列は次のようになります。

["Saab", undefined, "BMW"]

しかし、スプライスのように

myCars.splice(1,1);

結果は次のようになります:

["Saab", "BMW"]

おすすめ記事