首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何删除/取消设置JavaScript对象的属性?

如何删除/取消设置JavaScript对象的属性?
EN

Stack Overflow用户
提问于 2011-06-27 00:19:55
回答 2查看 123.2K关注 0票数 121

可能的重复项:

How can I unset a JavaScript variable?

How do I remove a property from a JavaScript object?

我正在寻找一种方法来删除/取消设置JavaScript对象的属性,这样当我循环执行for (var i in myObject)时就不会再出现这些属性。如何做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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"]
票数 127
EN

Stack Overflow用户

发布于 2011-06-27 00:22:06

要将其清除,请执行以下操作:

myObject["myVar"]=null;

要删除它,请执行以下操作:

delete myObject["myVar"]

正如您在重复答案中看到的那样

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6485127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档