![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 8
|
Наткнулся тут на забавную особенность for in. Объясните пожалуйста данное явление.
Есть простой массив с цифровыми ключами. Гипотетически допустим необходимо пробежаться по свойствам данного массива и удалить все элементы поочереди. (Способ конечно кривой, но всеже) Делам следующее: Если ключи массива идут подляд 012345678... то все прекрасно удаляется, но в случае если (как показали эксперименты): 1. числовые ключи в массиве с пропусками 2. в массиве присутствует значение с ключом 0 ноль 3. при определенном количестве элементов в массиве for in при пробегании свойств массива и удалении, игнорирует ключи кратные 8... 8 16 32 итд и не удаляет их. пример ... ------- массив --------------------- var a:Array = new Array(); a[0]='a0'; a[8]='a8'; a[9]='a9'; a[10]='a10'; a[11]='a11'; a[12]='a12'; a[13]='a13'; ------------trace порядок удаления---------------- a[0]=a0 a[9]=a9 a[10]=a10 a[11]=a11 a[12]=a12 a[13]=a13 ------- не удалилось --------------------- a[8]=a8 ------- массив --------------------- a[0]='a0' a[1]='a1' a[16]='a16' a[17]='a16' a[8]='a8' a[9]='a9' a[10]='a10' a[11]='a11' a[12]='a12' a[13]='a13' a[14]='a14' a[15]='a15' ------------trace порядок удаления---------------- a[0]=a0 a[17]=a16 a[1]=a1 a[8]=a8 a[9]=a9 a[10]=a10 a[11]=a11 a[12]=a12 a[13]=a13 a[14]=a14 a[15]=a15 ------- не удалилось --------------------- a[16]=a16 Последний раз редактировалось QuanChi; 15.02.2011 в 22:21. |
![]() |
Часовой пояс GMT +4, время: 20:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|