如何删除/取消设置JavaScript对象的属性?
可能重复:
如何取消设置一个Javascript变量?
如何从javascript对象中移除一个属性
我正在寻找一种方法来删除/取消设置一个JS对象的属性,所以如果我循环执行对象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
http://perfectionkills.com/understanding-delete/
另一个事实是,在数组上使用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"]
正如你可以看到重复的答案
链接地址: http://www.djcxy.com/p/4665.html上一篇: How to delete/unset the properties of a javascript object?