重複の可能性があるもの:
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"]