如何删除/取消设置一个javascript对象的属性?

可能重复:
如何取消设置一个Javascriptvariables?
如何从一个JavaScript对象中删除一个属性

我正在寻找一种方法来删除/取消设置一个JS对象的属性,所以如果我循环通过对象for (var i in myObject) ,他们不会再来。 如何才能做到这一点?

只需使用delete ,但请注意,您应该完全阅读使用此function的效果:

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

但如果我这样使用:

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

但如果你想删除全局命名空间中的variables,你可以使用它的全局对象,如window ,或在最外层的范围使用this

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

http://perfectionkills.com/understanding-delete/

另一个事实是,使用删除数组不会删除索引,但只设置值为undefined,意味着在某些控制结构,如for循环,你仍然会遍历该实体,当涉及到数组,你应该使用splice是数组对象的原型。

示例数组:

 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"] 

为了消除它:

 myObject["myVar"]=null; 

删除它:

 delete myObject["myVar"] 

正如你可以看到重复的答案