【发布时间】:2011-03-28 15:25:53
【问题描述】:
当迭代对象的属性时,在 for-in 循环中删除它们是否安全?
例如:
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
if (shouldDelete(obj[key])) {
delete obj[key];
}
}
在许多其他语言中,遍历数组或字典并在其中删除是不安全的。 JS里可以吗?
(我正在使用 Mozilla 的 Spidermonkey 运行时。)
【问题讨论】:
-
我已经开始对这个问题进行赏金,因为我认为当前的答案是不充分的,并且没有回答所提出的问题。如果适用,还请包括相关来源(希望来自规范)和任何值得注意的浏览器“怪癖”。
标签: javascript loops object properties