关于javascript:删除对象,使其不在for循环中迭代

Remove object so it doesn't iterate in a for loop

本问题已经有最佳答案,请猛点这里访问。

我的数据基本设置如下:

1
2
3
4
5
myObj = {};
myObj[3] = {};
myObj[3].stuff = 'hello';
myObj[4] = {};
myObj[4].stuff = 'hello';

现在在某个时候,我想从myobj中删除[4]。目前我将其设置为false,但myobj中仍然存在。像这样。

这里的问题是,如果我想循环myObj,它仍然会循环我不想循环的4。

如何正确设置数据,以便删除给定的对象,从而不会在for循环中迭代。

我的循环示例如下:

1
2
3
4
5
var i = 0;
for(var j in myObj){
  i++;
}
console.log(i); // = 2

有没有办法去掉[4]所以总数只有1?


使用删除运算符:

1
delete myObj[4];