Cli*_*ote 95 javascript jquery
我正在寻找一种方法来删除/取消设置JS对象的属性,这样如果我循环遍历该对象,它们将不再出现for (var i in myObject).如何才能做到这一点?
Rob*_*itt 110
只是使用delete,但要注意你应该完全阅读使用它的效果:
delete object.index; //true
object.index; //undefined
Run Code Online (Sandbox Code Playgroud)
但如果我这样使用:
var x = 1; //1
delete x; //false
x; //1
Run Code Online (Sandbox Code Playgroud)
但如果您确实希望删除全局命名空间中的变量,则可以使用它的全局对象,例如window,或this在最外层范围内使用,即
var a = 'b';
delete a; //false
delete window.a; //true
delete this.a; //true
Run Code Online (Sandbox Code Playgroud)
http://perfectionkills.com/understanding-delete/
另一个事实是在数组上使用delete不会删除索引但只会将值设置为undefined,这意味着在某些控制结构中,例如for循环,你仍将遍历该实体,当涉及到数组时你应该使用splice哪个是数组对象的原型.
示例数组:
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
delete myCars[1];
Run Code Online (Sandbox Code Playgroud)
结果数组将是:
["Saab", undefined, "BMW"]
Run Code Online (Sandbox Code Playgroud)
但是像这样使用拼接:
myCars.splice(1,1);
Run Code Online (Sandbox Code Playgroud)
会导致:
["Saab", "BMW"]
Run Code Online (Sandbox Code Playgroud)
mpl*_*jan 12
要删除它:
myObject["myVar"]=null;
Run Code Online (Sandbox Code Playgroud)
要删除它:
delete myObject["myVar"]
Run Code Online (Sandbox Code Playgroud)
你可以看到重复的答案
| 归档时间: |
|
| 查看次数: |
112667 次 |
| 最近记录: |