遍历对象的属性时,在for-in循环中删除它们是否安全?
例如:
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
if (shouldDelete(obj[key])) {
delete obj[key];
}
}
在许多其他语言中,遍历数组或字典并在其中删除是不安全的。在JS中可以吗?
(我正在使用Mozilla的Spidermonkey运行时。)
我开始悬赏这个问题,因为我认为当前答案不足,并且无法回答提出的问题。还请提供相关来源(希望来自规范)和任何著名的浏览器“怪癖”(如果适用)。
—
user2864740 2013年