可能的重复项:
How can I unset a JavaScript variable?
How do I remove a property from a JavaScript object?
我正在寻找一种方法来删除/取消设置JavaScript对象的属性,这样当我循环执行for (var i in myObject)
时就不会再出现这些属性。如何做到这一点?
发布于 2011-06-27 00:25:01
只需使用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
另一个事实是,在数组上使用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"]
发布于 2011-06-27 00:22:06
要将其清除,请执行以下操作:
myObject["myVar"]=null;
要删除它,请执行以下操作:
delete myObject["myVar"]
正如您在重复答案中看到的那样
https://stackoverflow.com/questions/6485127
复制相似问题