Lors de l'itération sur les propriétés d'un objet, est-il sécuritaire de supprimer tout en un pour-en boucle?
Par exemple:
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
if (shouldDelete(obj[key])) {
delete obj[key];
}
}
Dans de nombreuses autres langues itération sur un tableau ou un dictionnaire et la suppression de l'intérieur qui est dangereux. Est-il acceptable en JS?
(J'utilise Mozilla Spidermonkey l'exécution.)