Изменение ассоциативного массива Javascript во время цикла for

Ключевое слово javascript for будет перебирать все свойства объекта. Что произойдет, если объект будет изменен в теле цикла?

Например, в порядке ли следующий код?

for(var key in obj)
    if (whatever(obj[key]))
        delete obj[key];

В порядке, если этот код работает детерминированно и желательно, чтобы все ключи в obj проверялись ровно один раз. Напротив, в .NET или Java подобные конструкции обычно вызывают исключение.

6
задан Eamon Nerbonne 21 May 2011 в 12:54
поделиться