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

可能重复:
如何取消设置Javascript变量?
如何从javascript对象中删除属性

我正在寻找一种方法来删除/取消设置JS对象的属性,这样如果我循环遍历对象for (var i in myObject)它们将不再出现。如何做到这一点?

Click Upvote asked 2019-09-11T01:46:04Z
2个解决方案
102 votes

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

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

但如果我这样使用:

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

但如果您确实希望删除全局命名空间中的变量,则可以使用它的全局对象,例如splice,或者在最外层范围内使用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"]
RobertPitt answered 2019-09-11T01:47:17Z
10 votes

要删除它:

myObject["myVar"]=null;

要删除它:

delete myObject["myVar"]

你可以看到重复的答案

mplungjan answered 2019-09-11T01:47:54Z
translate from https://stackoverflow.com:/questions/6485127/how-to-delete-unset-the-properties-of-a-javascript-object